GridView Template Issue with Javascript

本文关键字:Javascript with Issue Template GridView | 更新日期: 2023-09-27 18:35:42

我在 ASP.net 中使用 C#,我需要帮助来纠正或有一种方法来获得我需要的东西。我使用 gridview,数据选择一组数据,这些数据将根据其主键到另一个表中使用。

在客户端的运行时,我需要收集 onclick 事件,每行的 sid 列并将其放入隐藏字段中。但是,下面的代码对我不起作用,因为 <%#eval("sid");%>!正在读取为字符串,而不是当前行值。

我需要的是单击alert(5)而不是alert('<%#eval("sid");%>!")的复选框;这就是目前正在做的事情。

<Columns>
            <asp:TemplateField>
                <ItemTemplate>
                    <asp:CheckBox runat="server" ID="cbSelect" onclick="javascript:alert('<%#eval("sid"); %>!');"/>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:HyperLinkField DataTextField="nombre" NavigateUrl="http://www.google.com" HeaderText="direccion"/>
            <asp:BoundField DataField="sid" HeaderText="sid" InsertVisible="False" 
                ReadOnly="True" SortExpression="sid" />
            <asp:BoundField DataField="nombre_archivo" HeaderText="nombre_archivo" 
                SortExpression="nombre_archivo" />
</Columns>

如果需要更多信息,请询问您需要我在问题中添加什么。

GridView Template Issue with Javascript

试试这个,对我有用:

<asp:CheckBox runat="server" ID="cbSelect" onclick='<%# "javascript:alert(" + Eval("sid") + " );" %>'/>
我相信

Eval区分大小写,你不需要那个分号:

 <%# Eval("sid") %>

尝试将代码更改为此代码。你的 Eval() 实际上是 eval() 无效的。

<Columns>
 <asp:TemplateField>
  <ItemTemplate>
   <asp:CheckBox runat="server" 
        ID="cbSelect" 
    onclientclick='<%#string.Format("javascript:alert('{0}');",Eval("sid"))%>'/>
   </ItemTemplate>
  </asp:TemplateField>
 <asp:HyperLinkField DataTextField="nombre" 
     NavigateUrl="http://www.google.com" HeaderText="direccion"/>
  <asp:BoundField DataField="sid" HeaderText="sid" InsertVisible="False" 
                ReadOnly="True" SortExpression="sid" />
      <asp:BoundField DataField="nombre_archivo" HeaderText="nombre_archivo" 
                SortExpression="nombre_archivo" />
</Columns>