我有一些使用Eval生成对javascript函数调用的aspx代码:
ASP.NET(为便于阅读而包装):
<asp:LinkButton runat="server"
OnClientClick='<%# Eval(
"NodeGUID",
"return DoStuff(this, \"{0}\");") %>'
Text="Do stuff" />
Run Code Online (Sandbox Code Playgroud)
这会生成类似于的javascript:
Javascript(为便于阅读而包装):
return DoStuff(this,
"3F2504E0-4F89-11D3-9A0C-0305E82C3301"
);
Run Code Online (Sandbox Code Playgroud)
注意: 我已经转换了生成的" 实体引用引号以便于阅读.
我现在需要在javascript函数调用中添加一个第三个参数,一个标题:
Javascript(为便于阅读而包装)
return DoStuff(this,
"3F2504E0-4F89-11D3-9A0C-0305E82C3301",
"AllisonAngel.jpg"
);
Run Code Online (Sandbox Code Playgroud)
注意: 我已经转换了生成的" 实体引用引号以便于阅读.
代码隐藏文件中已存在一个用于返回项目标题的函数:
C#(为了便于阅读,省略了代码):
protected string GetItemText(MySomething item)
{
...
}
Run Code Online (Sandbox Code Playgroud)
我知道可以使用类似于以下语法从aspx文件调用上述函数:
ASP.NET(包装,代码省略,为了便于阅读):
<asp:LinkButton ... runat="server"
Text="<%# GetItemText((MySomething)Container.DataItem) %>"
... />
Run Code Online (Sandbox Code Playgroud)
所以现在我想使用这个函数将第三个参数包含到javascript函数中.
从...开始:
<asp:LinkButton runat="server"
OnClientClick='<%# Eval(
"NodeGUID",
"return DoStuff(this, \"{0}\", \"Todo - Insert caption here\");") %>'
Text="Do stuff" />
Run Code Online (Sandbox Code Playgroud)
我需要改变:" 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" />
Run Code Online (Sandbox Code Playgroud)
但是抱怨,因为Eval()只需要两个参数.
我尝试了稍微不那么明显:
ASP.NET(包含可读性)
<asp:LinkButton runat="server"
OnClientClick='<%# Eval(
"NodeGUID",
"return DoStuff(this,
\"{0}\",
\""+GetItemText((MySomething)Container.DataItem)+"\");") %>'
Text="Do stuff" />
Run Code Online (Sandbox Code Playgroud)
但这也不起作用.
相关问题
Sco*_*vey 20
诀窍不是将多个项目传递给eval,而是将多个eval传递给您想要用于格式化数据的任何内容.您也可以这样做 - 这会将演示文稿保存在aspx文件中,就像您想要的那样......
<asp:LinkButton
runat="server"
OnClientClick='<%# string.Format(
"return DoStuff(this, \"{0}\", \"{1}\");",
Eval("NodeGUID"),
GetItemText((MySomething)Container.DataItem)) %>'
Text="Do stuff" />
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
29155 次 |
| 最近记录: |