我在GridView中的<ItemTemplate>
内有一个按钮,我想在该按钮的OnClientClick
上调用一个javascript函数,将DataItem值作为javascript函数的参数传递
<ItemTemplate>
// Labels and Html styles
....
<asp:Button ID="btnEdit" runat="server" Text="Edit" OnClientClick='javascript:CreateEditAddress(<%#Bind("Id") %>);' />
<asp:Button ID="btnDelete" runat="server" Text="Delete" />
</ItemTemplate>
如果我不在CreateEditAddess()
中放置参数,这种方法效果很好,但我需要参数。
我知道我可以将OnClientClick事件值放在gridview的OnRowDataBound事件中,但我不想把它放在CodeBehind中。似乎服务器标签未正确解析。
我在这里错过了什么吗?
答案 0 :(得分:1)
见:
loading gridview with hyperlink column
我认为你应该使用DataBinder.Eval(Container, "DataItem.YourProperty")
。
答案 1 :(得分:0)
你也可以尝试这样:
<asp:TemplateField HeaderText="Link">
<ItemTemplate>
<asp:HyperLink runat="server" ID="HLink"
Text='<%# Eval("FirstName").ToString() + " " + Eval("LastName").ToString()%>'
NavigateUrl='<%# "javascript:OpenPopup(" + "'" + Eval("EmpId") + "');" %> ' />
</ItemTemplate>
</asp:TemplateField>
当需要将一个或多个变量传递给javascript函数时,这将对您有所帮助。