我有一个Repeater控件,我需要访问里面的HiddenField。我不能用:
<%= Control.ID.ClientID %>
我也不能使用class或cssclass属性吗?
所以我的问题很简单,如何在我的转发器中访问我的HiddenField控件?
我的场景是我填充了一个多选下拉列表,我需要在更新函数中知道我选择了哪些元素,为此我使用HiddenField来存储Id。然后在代码后面我可以访问HiddenField值并制作一个propor databind。
答案 0 :(得分:2)
HiddenField
控制元素呈现给input
类型的hidden
,因此,虽然没有完全理解您的应用有限的模糊场景,但您可以使用类似的选择器在jQuery中访问它们这样:
$("input[type=hidden]")
根据您的情况,您可能希望更多地约束该选择器。
但是,这主要关注您是否包含jquery标记,尽管您的示例似乎希望使用内联ASP.NET脚本来使用托管代码。请澄清您的意图和最终目标。
答案 1 :(得分:0)
您可以使用班级选择器
在隐藏的领域上课
on change
的{{1}}事件会找到相应的隐藏字段并设置其值。
我建议你在multiselectable
上写一个课程ddl
。
在这个多选中绑定关于更改方法的jquery。
使用jquery multiselectable dropdown
和parent
选择器,您可以在隐藏字段中设置值。
〔实施例
prev
这只是为了我的方法而已。
以下是如何在隐藏字段上使用 $(".ddl").change( function(){
$(this).parent().next().find("input:hidden").val($(".ddl").val());
});
的一个很好的示例。
Jquery Hidden Field
答案 2 :(得分:0)
我找到了一个实际上非常简单的解决方案:)
我在转发器内的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
};
如果此实施有缺陷或某种方式不好,请发表评论。