C# 如何访问以编程方式添加的复选框
我正在开发一个应用程序,我需要添加过滤器。 为此,我将以编程方式添加复选框,因为筛选选项不是预定义的,它取决于表中的值,我将复选框添加为“休耕”C# 如何访问以编程方式添加的复选框,c#,asp.net,checkbox,C#,Asp.net,Checkbox,我正在开发一个应用程序,我需要添加过滤器。 为此,我将以编程方式添加复选框,因为筛选选项不是预定义的,它取决于表中的值,我将复选框添加为“休耕” public void addCusineCheckbox() { DataTable CusineList = Sql.ExecuteSelectCommand("select prod_group_id,Prod_group_name from Master_Prod_Groups"); for (i
public void addCusineCheckbox()
{
DataTable CusineList = Sql.ExecuteSelectCommand("select prod_group_id,Prod_group_name from Master_Prod_Groups");
for (int i = 0; i < CusineList.Rows.Count; i++)
{
CheckBox chkCusine = new CheckBox();
chkCusine.ID = "chk" + CusineList.Rows[i]["Prod_group_name"].ToString();
chkCusine.Text = CusineList.Rows[i]["Prod_group_name"].ToString();
divCusineFilter.Controls.Add(chkCusine);
}
}
public void addCusineCheckbox()
{
DataTable CusinList=Sql.ExecuteSelectCommand(“从主产品组中选择产品组id、产品组名称”);
for(int i=0;i
这将帮助用户选择所需的字段(还有其他选项可供选择),然后单击该字段上的“应用过滤器”,并尝试访问“作为休耕”添加的复选框
public string getCusineFilterString()
{
string CusineID =null;
DataTable CusineList = Sql.ExecuteSelectCommand("select prod_group_id,Prod_group_name from Master_Prod_Groups");
for (int i = 0; i < CusineList.Rows.Count; i++)
{
CheckBox chk = (CheckBox)Page.FindControl("chk" + CusineList.Rows[i]["Prod_group_name"]);
if (chk.Checked == true)
{
if (i == 0)
{
CusineID = CusineList.Rows[i]["prod_group_id"].ToString();
}
else
{
CusineID = CusineID + "," + CusineList.Rows[i]["prod_group_id"].ToString();
}
}
}
return CusineID;
}
公共字符串getCusineFilterString()
{
字符串CusineID=null;
DataTable CusinList=Sql.ExecuteSelectCommand(“从主产品组中选择产品组id、产品组名称”);
for(int i=0;i
但它给出了一个错误,即对象未设置为实例
我不知道如何访问该复选框。存在某些限制:
- 无法访问ASP.net中未在Init之前或之上添加的任何控件。因此,您可以在OnInit页上添加控件,然后就可以访问它了。但在添加控件时必须小心,以便在正确的位置添加控件,而不是重复
- 你不应该写信 复选框chk=(复选框)Page.FindControl(“chk”)
var chkControl = Page.FindControl("chk");
if(chkControl != null /*&& check type*/) {
CheckBox chk = (CheckBox)chkControl;
// and do something
}
- 如果在设计时使用CheckBoxList控件,并在运行时更改绑定值以填充不同的复选框,效果会更好
ChkBox1.Items.Add(new ListItem("Item 1", "Item1"));
希望有帮助有一些限制:
- 无法访问ASP.net中未在Init之前或之上添加的任何控件。因此,您可以在OnInit页上添加控件,然后就可以访问它了。但在添加控件时必须小心,以便在正确的位置添加控件,而不是重复
- 你不应该写信 复选框chk=(复选框)Page.FindControl(“chk”)
var chkControl = Page.FindControl("chk");
if(chkControl != null /*&& check type*/) {
CheckBox chk = (CheckBox)chkControl;
// and do something
}
- 如果在设计时使用CheckBoxList控件,并在运行时更改绑定值以填充不同的复选框,效果会更好
ChkBox1.Items.Add(new ListItem("Item 1", "Item1"));
希望有帮助有一些限制:
- 无法访问ASP.net中未在Init之前或之上添加的任何控件。因此,您可以在OnInit页上添加控件,然后就可以访问它了。但在添加控件时必须小心,以便在正确的位置添加控件,而不是重复
- 你不应该写信 复选框chk=(复选框)Page.FindControl(“chk”)
var chkControl = Page.FindControl("chk");
if(chkControl != null /*&& check type*/) {
CheckBox chk = (CheckBox)chkControl;
// and do something
}
- 如果在设计时使用CheckBoxList控件,并在运行时更改绑定值以填充不同的复选框,效果会更好
ChkBox1.Items.Add(new ListItem("Item 1", "Item1"));
希望有帮助有一些限制:
- 无法访问ASP.net中未在Init之前或之上添加的任何控件。因此,您可以在OnInit页上添加控件,然后就可以访问它了。但在添加控件时必须小心,以便在正确的位置添加控件,而不是重复
- 你不应该写信 复选框chk=(复选框)Page.FindControl(“chk”)
var chkControl = Page.FindControl("chk");
if(chkControl != null /*&& check type*/) {
CheckBox chk = (CheckBox)chkControl;
// and do something
}
- 如果在设计时使用CheckBoxList控件,并在运行时更改绑定值以填充不同的复选框,效果会更好
ChkBox1.Items.Add(new ListItem("Item 1", "Item1"));
希望对您有所帮助您可以使用
Request.Forms
collection获取值。它保留窗体上每个控件的值。但是它在name
上工作,而不是ID
更好的方法是使用空的复选框列表
,并在运行时添加项
这里有一个关于复选框列表的讨论链接
例子
创建一个空的
<asp:CheckBoxList ID="ChkBox1" runat="server"></asp:CheckBoxList>
您可以使用foreach循环获取数据,如下所示
// Loop through each item.
foreach (ListItem item in ChkBox1.Items)
{
if (item.Selected)
{
// If the item is selected, add the value to the list.
}
else
{
// Item is not selected, do something else.
}
}
您可以使用Request.Forms
collection获取值。它保留窗体上每个控件的值。但是它在name
上工作,而不是ID
更好的方法是使用空的复选框列表
,并在运行时添加项
这里有一个关于复选框列表的讨论链接
例子
创建一个空的
<asp:CheckBoxList ID="ChkBox1" runat="server"></asp:CheckBoxList>
您可以使用foreach循环获取数据,如下所示
// Loop through each item.
foreach (ListItem item in ChkBox1.Items)
{
if (item.Selected)
{
// If the item is selected, add the value to the list.
}
else
{
// Item is not selected, do something else.
}
}
您可以使用Request.Forms
collection获取值。它保留窗体上每个控件的值。但是它在name
上工作,而不是ID