我有一个gridview
,其中有一些行
和列
,列中有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>
在页面加载时
if (Request.Params["ListBox1Hidden"] != null)
{
//This means It was double click
}
现在,当我双击 ListBox
时,会触发此事件。现在我想要获取单击的列表框的 Name
、 RowIndex
和 Id
例如:
如果我双击第一行的LB1
,我想获取名称:FieldName
、Id:lstBox1
和RowIndex。
我的疑问是,是否可以像我一样通过唯一一个隐藏字段来实现?如果可以怎么办?
否则,我是否必须将每个 HiddenField
包含在 ItemTemplate
中才能实现此目的。
哪一个可以帮助我实现这一目标,并为我提供执行此操作的代码?
最佳答案
尝试在 JavaScript 函数中传递列值。像这样:
'<%# Eval("ColumnName") %>'
例如,我们有这个双击事件:
ondblclick="ListBox1_DoubleClick()"
尝试将其更改为:
ondblclick="ListBox1_DoubleClick('<%# Eval(\"ColumnName\") %>')"
通过这种方式,您可以将任何列的值作为参数传递给 javascript 函数。
注意:在双引号“ColumnName”中,我们必须使用正确的转义字符。
关于javascript - 如何将 ID 和字段值分配给隐藏字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32353571/