1

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

如果需要更多信息,请询问您需要我添加到问题中的内容。

4

3 回答 3

1

试试这个,对我有用:

<asp:CheckBox runat="server" ID="cbSelect" onclick='<%# "javascript:alert(" + Eval("sid") + " );" %>'/>
于 2013-10-16T16:55:39.643 回答
0

我相信Eval是区分大小写的,你不需要那个分号:

 <%# Eval("sid") %>
于 2013-10-16T16:44:45.947 回答
0

尝试将您的代码更改为此。而你的 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>
于 2013-10-16T16:52:52.767 回答