【问题标题】:ID is not getting assigned in array properlyID 未正确分配到数组中
【发布时间】:2016-08-30 08:05:05
【问题描述】:

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

【问题讨论】:

  • 您需要在要拆分的 "control_id" 中显示您拥有的内容,但我假设您没有位置为 2 的数组:StrArrPriTextID[2]。请记住,当涉及到索引值时,它从 0 开始
  • @GiladGreen:在 control_id 中,我有 Txt_SURVEY 文本框的 id。而且一共有两个id
  • 你能显示一些数据吗?特别是DtGrid.Rows[IntPriCount]["control_id"].ToString().Split(',')
  • 如果您只有两个 ID,它们将被索引为 [0] 和 [1] - 不会有 [2]
  • HidTextControl.Value += StrArrPriTextID[2].ToString() + ";"; 中,索引值只能是[0] 或[1]。没有可用的索引 [2],因为只有 2 条记录。

标签: c# asp.net arrays


【解决方案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 + ";";

希望对您有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-04
    • 2013-08-16
    • 1970-01-01
    • 2020-11-09
    • 1970-01-01
    • 1970-01-01
    • 2018-02-08
    相关资源
    最近更新 更多