ASP.NET如何将Eval(“Eval”)发送到javascript方法以操纵其值
我有下面的代码,这是工作良好ASP.NET如何将Eval(“Eval”)发送到javascript方法以操纵其值,javascript,asp.net,Javascript,Asp.net,我有下面的代码,这是工作良好 <asp:TemplateField> <ItemTemplate> <div runat="server" id="divFileName" class="divFileName" title='<%# Eval("FileName")%>'> <%# Eval("FileName")%></div>
<asp:TemplateField>
<ItemTemplate>
<div runat="server" id="divFileName" class="divFileName" title='<%# Eval("FileName")%>'>
<%# Eval("FileName")%></div>
</ItemTemplate>
</asp:TemplateField>
Eval(“FileName”)
的结果返回一个完整的路径字符串,如下所示:
C:\Windows\Microsoft.NET\Framework\sbs\u diasymreader.dll
我想在客户端发送Eval(“文件名”)
到一个javascript方法,该方法将裁剪Eval(“文件名”)代码>值,并将仅返回不带完整路径的文件名。(对于本例,它应该返回sbs\u diasymreader.dll
)
我试图实现的结果是,最终当前包含带有路径的全名的表将只显示没有路径的文件
如何做到这一点?如果文件名字段包含可以使用该类的完整路径
该表达式是在服务器端处理的,您不能在网格中显示javascript的返回值,只需调用函数即可。改为这样做
<asp:TemplateField HeaderText="File Name">
<ItemTemplate>
<%# System.IO.Path.GetFileName(Eval("FileName").ToString()) %>
</ItemTemplate>
</asp:TemplateField>
在VB.NET中,您可以使用以下命令或Adrian Iftode提到的命令
<%# FileIO.FileSystem.GetName(Eval("FileName").ToString()) %>
或者,您可以使用代码并编写jQuery来遍历每个范围(相应地更新选择器),如下所示:
<script type="text/javascript">
$(document).ready(function () {
$("span").each(function () {
$(this).text(getFileName($(this).text()));
});
});
function getFileName(filePath) {
var index = filePath.lastIndexOf("\\") + 1;
return filePath.substring(index, filePath.length);
}
</script>
$(文档).ready(函数(){
$(“span”)。每个(函数(){
$(this.text)(getFileName($(this.text());
});
});
函数getFileName(文件路径){
var index=filePath.lastIndexOf(“\\”)+1;
返回filePath.substring(index,filePath.length);
}
<script type="text/javascript">
$(document).ready(function () {
$("span").each(function () {
$(this).text(getFileName($(this).text()));
});
});
function getFileName(filePath) {
var index = filePath.lastIndexOf("\\") + 1;
return filePath.substring(index, filePath.length);
}
</script>