当 CheckBox 控件位于 DataRepeater 上时,如何从数据库中检索 CheckBox 的选中状态

How to retrieve the check state of CheckBox from database while the CheckBox control is on the DataRepeater

我想在 win 窗体中使用 C# 检索 DataRepeater 和数据库上未绑定 CheckBox 控件的选中状态。我从任务 table 中拖出 "Task State" 字段作为包含 0(将用作 false)和 1(将用作 true for checkBox1.Checked).

Screenshot

正如您在图片中看到的,我希望未绑定的 CheckBox 通过翻译 CheckBox 下的标签(绿色箭头)中的那些 1 和 0 来获取它的检查状态。

这是我用来设置复选框的代码:

private void dataRepeater3_DrawItem(object sender, Microsoft.VisualBasic.PowerPacks.DataRepeaterItemEventArgs e) 
{
    if (((Label)dataRepeater3.CurrentItem.Controls["stateLabel1"]).Text == "1") 
    { 
        ((CheckBox)dataRepeater3.CurrentItem.Controls["checkBox1"]).Checked = true; 
    } 
    else 
    { 
        ((CheckBox)dataRepeater3.CurrentItem.Controls["checkBox1"]).Checked = false; 
    } 
}

每次绘制中继器时都需要循环控制控件。在您的 DrawItem 方法中试试这个:

foreach ( DataRepeaterItem rowItem in dataRepeater1.Controls )
    {
        if (((Label)rowItem.Controls["stateLabel1"]).Text == "1") 
        { 
            ((CheckBox)rowItem.Controls["checkBox1"]).Checked = true; 
        } 
        else 
        { 
            ((CheckBox)rowItem.Controls["checkBox1"]).Checked = false; 
        } 
    }