Asp.net 将checkboxlist动态添加到占位符中,并获取checkboxlist的选中值
我正在创建一个管理页面,其中将动态创建checkboxlist(数据库中的用户列表),并检索其checked users值 有不同类型的用户,因此按组进行区分 现在,首先定义面板,动态创建复选框列表并将其放置在面板内,然后将面板放置在占位符内 我在这里做的是将复选框列表放在面板内,然后将面板放在占位符内。因此无法检索Checkboxlist的值,因为该面板无法获取Checkboxlist,也无法在Checkboxlist中循环 我所做的是Asp.net 将checkboxlist动态添加到占位符中,并获取checkboxlist的选中值,asp.net,c#-4.0,Asp.net,C# 4.0,我正在创建一个管理页面,其中将动态创建checkboxlist(数据库中的用户列表),并检索其checked users值 有不同类型的用户,因此按组进行区分 现在,首先定义面板,动态创建复选框列表并将其放置在面板内,然后将面板放置在占位符内 我在这里做的是将复选框列表放在面板内,然后将面板放在占位符内。因此无法检索Checkboxlist的值,因为该面板无法获取Checkboxlist,也无法在Checkboxlist中循环 我所做的是 private void AddControl(字符串
private void AddControl(字符串pUserGrp,int pUserGrp\u Id,int pName)
{
CheckBoxList chkList=新的CheckBoxList();
复选框chk=新复选框();
用户us=新用户();
us.OrderBy=“按用户名订购”;
us.WhereClause=“Where UserRole\u Id=“+pUserGrp\u Id;
chkList.ID=“ChkUser”+pName;
chkList.AutoPostBack=true;
Add(“onClick”、“getVal(ChkUser”+pName+);”;
chkList.RepeatColumns=6;
chkList.DataSource=us.GetUserDS();
chkList.DataTextField=“用户名”;
chkList.DataValueField=“用户Id”;
chkList.DataBind();
Add(“onClick”、“getVal(this);”;
面板pUser=新面板();
如果(pUserGrp!=“”)
{
pUser.GroupingText=pUserGrp;
chk.Text=pUserGrp;
}
其他的
{
pUser.GroupingText=“未分配组”;
chk.Text=“未分配组”;
}
pUser.Controls.Add(chk);
pUser.Controls.Add(chkList);
Place.Controls.Add(pUser);
}
私有void setChecked(int pPageGroupId)
{
ArrayList arr=新的ArrayList();
PageMaster obj=新的PageMaster();
obj.WhereClause=“Where PageGroup_Id=“+pPageGroupId;
arr=obj.GetPageGroupUserRights(null);
CheckBoxList chkList=(CheckBoxList)Place.FindControl(“ChkUser”);
如果(chkList!=null)
{
对于(int i=0;i0)
{
int ii=0;
而(ii
它不会通过setChecked()中的Checkboxlist控件,也不会通过GetListCheckBoxTest()循环
任何人都可以帮我
关于问题在于,您试图在未设置名称属性的情况下查找控件(在
setChecked
)。您使用的是:
CheckBoxList chkList = (CheckBoxList)Place.FindControl("ChkUser");
但是这在AddControl
中的什么位置
chkList.Name = "ChkUser";
在GetListCheckBoxText
中,而不是在
if (c.GetType().Name == "CheckBoxList")
…使用以下命令:
if (c.GetType()== typeof(CheckBoxList))
真的很感谢你的回复。我已经试过了,但它有错误。我已经给出了chkList.ID=“ChkUser”;我找不到。chkList的名字,它暗示着NamingContainer。还有别的办法吗。请帮帮我。
if (c.GetType()== typeof(CheckBoxList))