获取具有相同服务器ID的多个userControl的clientID

本文关键字:userControl clientID ID 服务器 获取 | 更新日期: 2023-09-27 18:18:59

我有ASP。Net应用程序在同一页面中有多个用户控件,每个用户控件都有其隐藏字段,每个用户控件都有一个值,每个用户控件都有一个按钮,调用弹出窗口,并通过这个值从隐藏字段到它。
问题是,当我试图访问隐藏字段并获得其中的值时,程序总是获得最后一个(创建最后一个)。
我怎么能得到内部隐藏字段的值在当前用户控制(我点击按钮)?
尝试:

var hdnRegion = "<%=hdnRegionId.ClientID%>";
var regionIdVal = $("#" + hdnRegion).val();
methodName(regionIdVal);

另一个:

var currentControl = "<%=this.ClientID%>";
var hdnRegion = currentControl + "_" + "hdnRegionId";
var regionIdVal = $("#" + hdnRegion).val();
methodName(regionIdVal);


我还尝试从代码调用返回值的属性和返回整个控件而没有正确结果的属性。

什么建议,我们将不胜感激…

获取具有相同服务器ID的多个userControl的clientID

根据您在问题下的评论,您的btnUpdatehdnRegionId控件位于相同的容器中(例如在相同的div中),所以试试这个:

$('input[id*="btnUpdate"]').click(function(){
    var regionIdVal = $(this).parent().children('input[id*="hdnRegionId"]').val();
    methodName(regionIdVal);
});

这是一个JSFiddle演示,模拟ASP.NET渲染的HTML代码。