ASP.Net填充复选框快速解决方案?

ASP.Net填充复选框快速解决方案?,asp.net,checkbox,Asp.net,Checkbox,我只是想知道是否有一种快速的方法可以从我的查询中填充我的复选框 目前我是这样做的 If Trim(DataTable.Rows(0).Item("COLUMN1").ToString()) = "Y" Then cb1.Checked = True Else cb1.Checked = False End If If Trim(DataTable.Rows(0).Item("COLUMN2_FLAG").ToString()) = "Y" Then cb2.Checked = True Els

我只是想知道是否有一种快速的方法可以从我的查询中填充我的复选框

目前我是这样做的

If Trim(DataTable.Rows(0).Item("COLUMN1").ToString()) = "Y" Then
cb1.Checked = True
Else
cb1.Checked = False
End If

If Trim(DataTable.Rows(0).Item("COLUMN2_FLAG").ToString()) = "Y" Then
cb2.Checked = True
Else
cb2.Checked = False
End If

If Trim(DataTable.Rows(0).Item("COLUMN3_FLAG").ToString()) = "Y" Then
cb3.Checked = True
Else
cb3.Checked = False
End If
我总共有15个复选框,似乎有很多不必要的代码来填充我的复选框

有什么快速的方法可以做到这一点吗


感谢您的if语句需要一个布尔值来计算其流。复选框还接收布尔值

我想你可以这样做:

cb1.Checked = Trim(DataTable.Rows(0).Item("COLUMN1").ToString()) == "Y"
cb2.Checked = Trim(DataTable.Rows(0).Item("COLUMN2_FLAG").ToString()) == "Y"
cb3.Checked = Trim(DataTable.Rows(0).Item("COLUMN3_FLAG").ToString()) == "Y"

我使用的是C#而不是vb。如果语法不正确,很抱歉。但基本上,如果布尔表达式的计算结果为true,它将设置checked=true;如果它的计算结果为false,它将设置为false。

您的if语句需要一个布尔值来计算其流。复选框还接收布尔值

我想你可以这样做:

cb1.Checked = Trim(DataTable.Rows(0).Item("COLUMN1").ToString()) == "Y"
cb2.Checked = Trim(DataTable.Rows(0).Item("COLUMN2_FLAG").ToString()) == "Y"
cb3.Checked = Trim(DataTable.Rows(0).Item("COLUMN3_FLAG").ToString()) == "Y"

我使用的是C#而不是vb。如果语法不正确,很抱歉。但基本上,如果布尔表达式的计算结果为true,它将设置checked=true,如果它的计算结果为false,它将设置为false。

将其放入一个以字符串和复选框为参数的函数中

public function func(byval col as string) as boolean

  return Trim(DataTable.Rows(0).Item(col).ToString()) = "Y" Then

end sub

现在,您可以调用该函数并将其分配给每个复选框。

将其放入一个以字符串和复选框为参数的函数中

public function func(byval col as string) as boolean

  return Trim(DataTable.Rows(0).Item(col).ToString()) = "Y" Then

end sub

现在,您只需调用该函数并分配给每个复选框。

如果您的命名约定过于可信,并且将保持一致,则可以使用循环通过一系列复选框进行操作。很抱歉,这是用C#编写的,但我对我的VB.NET语法没有信心。希望它应该很容易转换

Checkbox[] checkboxes = new Checkbox[] { cb1, cb2, cb3.....};
foreach(var checkbox in checkboxes)
{
    string index = checkbox.Id.Substring(2);
    if (DataTable.Rows(0).Item("COLUMN" + index) != null)
          checkbox.Checked = DataTable.Rows(0).Item("COLUMN" + index).ToString() == "Y";
    else if (DataTable.Rows(0).Item("COLUMN" + index + "_FLAG" ) != null)
          checkbox.Checked = DataTable.Rows(0).Item("COLUMN" + index + "_FLAG").ToString() == "Y";
}

如果您的命名约定过于可信,并且将保持一致,那么您可以使用循环通过一系列复选框进行操作。很抱歉,这是用C#编写的,但我对我的VB.NET语法没有信心。希望它应该很容易转换

Checkbox[] checkboxes = new Checkbox[] { cb1, cb2, cb3.....};
foreach(var checkbox in checkboxes)
{
    string index = checkbox.Id.Substring(2);
    if (DataTable.Rows(0).Item("COLUMN" + index) != null)
          checkbox.Checked = DataTable.Rows(0).Item("COLUMN" + index).ToString() == "Y";
    else if (DataTable.Rows(0).Item("COLUMN" + index + "_FLAG" ) != null)
          checkbox.Checked = DataTable.Rows(0).Item("COLUMN" + index + "_FLAG").ToString() == "Y";
}

如果可能的话,你可以考虑使用数据和一个中继器控件来构建你的复选框(

< p>),你可以考虑使用数据和一个中继器控件来构建你的复选框?< /p>为什么不返回(DATABATE?行(0)项(COL)?toStrug())=“y”?为什么不返回(DATABATE?行(0)项(COL)?toStrug())=“y”。欢迎光临。要回写到数据库或datatable中,您应该能够执行如下操作:字符串YorN=CheckBox1.Checked?“Y”:“N”;这是c代码,但也许你可以翻译成欢迎。要回写到数据库或datatable中,您应该能够执行如下操作:字符串YorN=CheckBox1.Checked?“Y”:“N”;这是c代码,但也许你可以翻译成VB