我有一个比特的ASPX代码使用eval生成到JavaScript函数的调用:如何将多个参数传递给Eval()?
ASP.NET(为了便于阅读):
<asp:LinkButton runat="server"
OnClientClick='<%# Eval(
"NodeGUID",
"return DoStuff(this, \"{0}\");") %>'
Text="Do stuff" />
这产生类似JavaScript来:
的Javascript(为了便于阅读):
return DoStuff(this,
"3F2504E0-4F89-11D3-9A0C-0305E82C3301"
);
注意:我已将生成的&“实体引用引号以提高可读性。
我现在需要一个3ND参数添加到javascript函数调用,一个标题:
使用Javascript(为了便于阅读)
return DoStuff(this,
"3F2504E0-4F89-11D3-9A0C-0305E82C3301",
"AllisonAngel.jpg"
);
注:我已经转换生成的&“实体引用引号以提高可读性。
有已经存在于代码隐藏文件是用于返回标题为一个项目的函数:
C#(代码省略可读性):
protected string GetItemText(MySomething item)
{
...
}
我知道上述功能可以使用类似于以下语法的aspx文件调用:
ASP.NET(包裹,代码省略,以提高可读性):
<asp:LinkButton ... runat="server"
Text="<%# GetItemText((MySomething)Container.DataItem) %>"
... />
所以现在我想用这个功能包括对javascript函数的第三个参数。
从开始:
<asp:LinkButton runat="server"
OnClientClick='<%# Eval(
"NodeGUID",
"return DoStuff(this, \"{0}\", \"Todo - Insert caption here\");") %>'
Text="Do stuff" />
我需要改变: “Todo - Insert caption here
”
到一个电话:<%# GetItemText((MySomething)Container.DataItem) %>
盲目尝试显而易见的:
ASP.NET(包装为可读性):
<asp:LinkButton runat="server"
OnClientClick='<%# Eval(
"NodeGUID",
GetItemText((MySomething)Container.DataItem),
"return DoStuff(this, \"{0}\", \"{1}\");") %>'
Text="Do stuff" />
但是,抱怨,因为Eval()只需要两个参数。
我试过略少obivous:
ASP.NET(为了便于阅读)
<asp:LinkButton runat="server"
OnClientClick='<%# Eval(
"NodeGUID",
"return DoStuff(this,
\"{0}\",
\""+GetItemText((MySomething)Container.DataItem)+"\");") %>'
Text="Do stuff" />
但是,这并不工作。
相关问题
ASP.NET: How to access repeater generated elements from javascript?
asp.NET: How to access repeater generated elements?
我更喜欢这个答案。对不起Robert。 – 2009-11-23 16:51:38