[asp.net]在.NET Web 应用程序中处理类似复选框值

标签: Asp.net .Net C#
发布时间: 2017/3/26 3:38:03
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.
List<char> errorList = new List<char>();
        if (meetingErrorCheckBox.Checked)
            errorList.Add('M');
        if (ScheduledMachineDowntimeCheckBox.Checked)
            errorList.Add('S');
        if (ToolingCheckbox.Checked)
            errorList.Add('T');
        if (ProcessIssueCheckBox.Checked)
            errorList.Add('P');
        if (OperatorMaintenanceCheckBox.Checked)
            errorList.Add('O');
        if (VactionCheckBox.Checked)
            errorList.Add('V');
        if (CellLeadCheckBox.Checked)
            errorList.Add('C');
        if (WaitToolsCheckBox.Checked)
            errorList.Add('W');
        if (UnscheduledMaintenanceCheckBox.Checked)
            errorList.Add('U');
        if (WaitMaterialCheckBox.Checked)
            errorList.Add('A');
        if (WaitInspectionCheckBox.Checked)
            errorList.Add('I');
        if(AlternateDepartmentCheckBox.Checked)
            errorList.Add('D');
        if (TrainingCheckBox.Checked)
            errorList.Add('B');

有没有什么办法,使这。清洁?想想,像用接口或其它东西,但好像没有更简单的方法,与.NET Web 窗体和 asp︰ 复选框。

基本上我使用此列表来填充一个中间表 2 中的数据库表之间,我想知道的还有更好的方式,因为我还需要做一个检查在哪个盒子上签无论如果我可以遍历所有的箱子。

解决方法 1:

简化这的唯一方法就是重命名的所有复选框对 error0、 error1、 error2 等......然后循环虽然他们这样做︰

List<char> errorList = new List<char>();
int totalErrors = 13; //change accordingly
char[] errorId = new char['M', 'S', 'T', 'P', 'O', 'V', 'C', 'W', 'U', 'A', 'I', 'D', 'B'];
for(int i = 0; i < totalErrors; i++)
{
    string controlId = "error" + i.ToString();
    Control errorButton = FindControl(controlId);
    if(errorButton.Checked)
         errorList.add(char[i]);
}

如果你使用这只记得使复选框的 id 对应于该元素在 char []。例如,我使用的 char 数组中的元素 0是 M,这意味着你想要的错误 M 的复选框,您将名称error0。此代码将允许您添加到错误列表没有一大堆的如果语句。当然一定要相应地更新总误差变量。

赞助商