ID没有在数组中正确分配

本文关键字:分配 数组 ID | 更新日期: 2023-09-27 18:04:45

在我的datatable中,我将值赋给array。但是在我的代码中,值没有被正确分配。

从我的datatable中,表中有2行。但是在赋值的时候我得到了错误值

索引在数组边界之外。

我的代码

if (DtGrid.Rows[IntPriCount]["control_type"].ToString().ToUpper() == "T")
{
    //Array for storing the Control ID.
    string[] StrArrPriTextID = DtGrid.Rows[IntPriCount]["control_id"].ToString().Split(',');
    HidTextControl.Value += StrArrPriTextID[2].ToString() + ";"; //error line
    //Array for storing the Function name.
    string[] StrArrFun = DtGrid.Rows[IntPriCount]["fun_name"].ToString().Split(',');
    //HTML Table row object.
    HtmlTableRow ObjPriTr = new HtmlTableRow();
    //HTML table cell object.
    HtmlTableCell ObjPriTd = new HtmlTableCell();
    ObjPriTd.InnerText = DtGrid.Rows[IntPriCount]["label_name"].ToString();
    ObjPriTd.Attributes.Add("class", "label");
    ObjPriTr.Cells.Add(ObjPriTd);
}

ID没有在数组中正确分配

您的control_id列可能包含一个没有逗号的值(如单个控件的ID)

在这种情况下,Split()之后的下一行

string[] StrArrPriTextID = DtGrid.Rows[IntPriCount]["control_id"].ToString().Split(',');

数组StrArrPriTextID将只有一个元素。

所以,你应该改变错误行

HidTextControl.Value += StrArrPriTextID[2].ToString() + ";";

foreach(string str in StrArrPriTextID)
    HidTextControl.Value += str + ";";

希望对你有帮助。