Gridview ItemTemplate OnClientClick以DataItem值为参数的javascript函数

时间:2010-08-13 03:45:26

标签: asp.net gridview onclientclick

我在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中。似乎服务器标签未正确解析。

我在这里错过了什么吗?

2 个答案:

答案 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(" + "&#39;" + Eval("EmpId") + "&#39;);"   %> ' />
  </ItemTemplate> 
</asp:TemplateField>

当需要将一个或多个变量传递给javascript函数时,这将对您有所帮助。