ID未正确分配到数组中

时间:2016-08-30 08:05:06

标签: c# asp.net arrays

在我的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);
}

1 个答案:

答案 0 :(得分:1)

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 + ";";

希望有所帮助。