如何将Id和字段值分配给隐藏字段

How to assign Id and field value to Hidden field

本文关键字:字段 分配 隐藏 Id      更新时间:2023-09-26

我有一个gridview与少数rowscolumns, ListBox控件列。

标记:

    <asp:GridView ID="gvDataEntry" runat="server" AutoGenerateColumns="False"
    <Columns>
<ItemTemplate>
     <asp:ListBox ID="lstBox1" ondblclick="ListBox1_DoubleClick()" runat="server" CssClass="listBox"></asp:ListBox>
</ItemTemplate>
<ItemTemplate>
     <asp:ListBox ID="lstBox2" ondblclick="ListBox1_DoubleClick()" runat="server" CssClass="listBox"></asp:ListBox>
</ItemTemplate>
<ItemTemplate>
     <asp:ListBox ID="lstBox3" ondblclick="ListBox1_DoubleClick()" runat="server" CssClass="listBox"></asp:ListBox>
</ItemTemplate>
    </Columns>
    </asp:GridView>

显示为

-----------------------------------------------------
Name         |  Column1  |  Column2   | Column3
-----------------------------------------------------
FieldName    |  LB1      |   LB2      |   LB3      
----------------------------------------------------
FieldName 1  |  LB1      |   LB2      |   LB3
-----------------------------------------------------     

当我双击Listbox时,我想做一些功能,所以我在gridview外添加了隐藏字段

<asp:HiddenField ID="ListBox1Hidden"
            runat="server" />
Javascript

<script lang="javascript">
        function ListBox1_DoubleClick() {
            document.forms[0].submit();
        }
    </script>

On Page Load

       if (Request.Params["ListBox1Hidden"] != null)
        {          
            //This means It was double click            
        }

现在,当我双击ListBox这个事件触发。现在我想得到的Name, RowIndexId的ListBox点击

为例:

如果我双击第一行的LB1,我想得到名称:FieldName, Id: lstBox1和RowIndex。

我的疑问是,我所做的仅仅是一个隐藏的领域就能实现吗?如果有,该怎么做?

否则,我应该在ItemTemplate中包含每个HiddenField来实现这一点吗?

哪一个可以帮助我实现这一点,并提供我这样做的代码?

尝试在javascript函数中传递列的值。这样的:

'<%# Eval("ColumnName") %>'

例如,我们有这样的双击事件:

ondblclick="ListBox1_DoubleClick()"

尝试将其更改为:

ondblclick="ListBox1_DoubleClick('<%# Eval('"ColumnName'") %>')"

因此,通过这种方式,您可以将任何列的值作为参数传递给javascript函数。

注意:在双引号"ColumnName"内,我们必须使用正确的转义字符