我有一个显示用户列表的GridView。每个用户都有一个名字,姓氏和您希望用户拥有的其他数据。每个值都通过BoundField公开。例如,名字可通过“FirstName”获得,姓氏可通过“LastName”获得。
当用户点击我在TemplateField中的LinkButton时,我需要执行一些JavaScript。此JavaScript函数需要FirstName和LastName。目前,我正在尝试这样的事情:
<asp:LinkButton ID="lbPrompt" runat="server" Text="prompt" CommandName="Prompt"
CommandArgument='<%# Eval("UserName") %>'
OnClientClick='<%# Eval("FirstName", "LastName", "return askUser(\"{0}\",\"{1}\");") %>' />
此语句不起作用,因为Eval方法不接受此类重载。我如何完成这项任务?
由于
答案 0 :(得分:7)
<%# String.Format(
"return askUser(\"{0}\",\"{1}\")",
Eval("FirstName"),
Eval("LastName")) %>
答案 1 :(得分:0)
尝试
OnClientClick='<%# "return askUser(\"" + Eval("FirstName") + "\",\"" + Eval("LastName") + "\");" %>'
(未测试的)
答案 2 :(得分:0)
如果你正在使用代码,你可以在以下事件中使用它。
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
LinkButton lb = e.Row.FindControl("lbPrompt") as LinkButton;
if (lb != null)
{
string firstName = Convert.ToString(DataBinder.Eval(DataBinder.GetDataItem(e.Row), "FirstName"));
string lastName = Convert.ToString(DataBinder.Eval(DataBinder.GetDataItem(e.Row), "LastName"));
lb.Attributes.Add("OnClick", "javascript:return askUser(" + firstName + ", " + lastName + ")");
}
}