在Repeater内部的JQuery中获取HiddenField
本文关键字:获取 HiddenField JQuery Repeater 内部 | 更新日期: 2023-09-27 17:59:10
我有一个Repeater控件,我需要访问里面的HiddenField。我不能使用:
<%= Control.ID.ClientID %>
我也不能使用class或cssclass属性?
所以我的问题很简单,我如何访问中继器内的HiddenField控件?
我的场景是填充一个可多选的下拉列表,我需要在更新函数中知道我选择了哪些元素,为此我使用HiddenField来存储Id。然后在代码后面,我可以访问HiddenField值并进行propor数据绑定。
HiddenField
控制元素被呈现为hidden
类型的input
,因此,尽管您对应用程序有限的模糊场景没有完全理解,但您可以在jQuery中使用这样的选择器来访问它们:
$("input[type=hidden]")
根据您的情况,您可能需要进一步约束该选择器。
然而,这主要集中在包含jquery标记上,尽管您的示例似乎希望使用内联ASP.NET脚本来使用托管代码。请澄清你的意图和最终目标。
在隐藏字段上放置一个类
并且
multiselectable
的on change
事件找到合适的隐藏字段并设置其值第1版
我建议你把ddl
放在multiselectable dropdown
之上。
在此多选上绑定jquery on change方法。
使用jquery parent
和prev
选择器可以设置隐藏字段中的值。
Exmaple
$(".ddl").change( function(){
$(this).parent().next().find("input:hidden").val($(".ddl").val());
});
这只是我的方法。
编辑2
下面是一个如何在隐藏字段上使用css-class
的好例子。
Jquery隐藏字段
我找到了一个解决方案,实际上很简单:)
我在中继器内部的HiddenField上使用了ClientIDMode属性:
<asp:HiddenField ID="HiddenField_Pladser" runat="server" Value="Selected" ClientIDMode="Static" />
ClientID值设置为ID属性的值。然后在JQuery脚本中很容易访问值:
$("#HiddenField_Pladser").val();
从后面的代码中,我知道中继器的ItemIndex,这使得使用以下代码创建数据集合变得很容易:
var data = from RepeaterItem item in rpPladser.Items
let hidden = ((HiddenField)item.FindControl("HiddenField_Pladser"))
select new
{
selected = hidden.Value
};
如果这个实现有缺陷或不好,请发表评论。