Gridview ItemTemplate OnClientClick javascript 函数,以 DataItem 值作为参数

发布于 2024-09-14 07:40:07 字数 648 浏览 10 评论 0原文

我在 GridView 中的 中有一个按钮,我想在该按钮的 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>

如果我不会在 CreateEditAdess() 中添加参数,那么这很好用,但我需要参数

我知道我可以将 OnClientClick 事件值放在 gridview 的 OnRowDataBound 事件中,但我不想将其放在 CodeBehind 中。看来服务器标签没有正确解析。

我在这里错过了什么吗?

I have a button inside my <ItemTemplate> in GridView and I want to call a javascript function on the OnClientClick of that button passing the DataItem value as a parameter of the javascript function

<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>

If I will not put a parameter in CreateEditAddess() this works well but I need the parameter.

I know I can put the OnClientClick event value in OnRowDataBound event of the gridview but I don't want to put it in CodeBehind. It seems like the server tag is not parsed correctly.

Am I missing something here?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

是伱的 2024-09-21 07:40:07

请参阅:

使用超链接列加载 gridview

我认为你应该使用 <代码>DataBinder.Eval(Container, "DataItem.YourProperty")。

See this:

loading gridview with hyperlink column

I think you should use DataBinder.Eval(Container, "DataItem.YourProperty").

醉殇 2024-09-21 07:40:07

您也可以这样尝试:

<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 函数时,这将为您提供帮助。

You can also try like this:

<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>

This will help you when there is need to pass one or more variables to javascript function.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文