【问题标题】:dynamic gridview with data columns具有数据列的动态网格视图
【发布时间】:2014-11-15 07:13:30
【问题描述】:

我正在使用 gridview 控件 我必须动态插入 gridview 列 我插入行值,例如

我必须动态插入 gridview 列我插入一行值,例如

string[,] mularray = {
                      {"F_1","F_2","F_3","F_4","F_5","F_6"}
                     };

foreach (string names in mularray)
{
    for (int i = 0; i < 1; i++)
    {                   
        dt.Rows[dt.Rows.Count - 1]["10:00-11:00"] = mularray[i, 0];
        dt.Rows[dt.Rows.Count - 1]["11:00-12:00"] = mularray[i, 1];
        dt.Rows[dt.Rows.Count - 1]["12:00-01:00"] = mularray[i, 2]; 
        dt.Rows[dt.Rows.Count - 1]["02:00-03:00"] = mularray[i, 3];
        dt.Rows[dt.Rows.Count - 1]["03:00-04:00"] = mularray[i, 4];
        dt.Rows[dt.Rows.Count - 1]["04:00-05:00"] = mularray[i, 5];     
    }   
}

当我使用它但它像我在图片中显示的那样插入最后一行时

下一行的值应该像F-2,F-3,F_4,F_5,F_6,F_1 这样递增,那么必须这样做

【问题讨论】:

    标签: c# asp.net gridview


    【解决方案1】:

    如果我对您的理解正确,您应该能够执行以下简单的操作:

    string[,] mularray =
    {
        {"F_1","F_2","F_3","F_4","F_5","F_6"},
        {"F_2","F_3","F_4","F_5","F_6","F_1"},
        {"F_3","F_4","F_5","F_6","F_1","F_2"},
        {"F_4","F_5","F_6","F_1","F_2","F_3"},
        {"F_5","F_6","F_1","F_2","F_3","F_4"},
        {"F_6","F_1","F_2","F_3","F_4","F_5"}
    };
    
    for (int i = 0; i < mularray.GetLength(0); i++)
    {
        for (int j = 0; j < mularray.GetLength(1); j++)
        {
            dt.Rows[i]["10:00-11:00"] = mularray[j, 0];
            dt.Rows[i]["11:00-12:00"] = mularray[j, 1];
            dt.Rows[i]["12:00-01:00"] = mularray[j, 2];
            dt.Rows[i]["02:00-03:00"] = mularray[j, 3];
            dt.Rows[i]["03:00-04:00"] = mularray[j, 4];
            dt.Rows[i]["04:00-05:00"] = mularray[j, 5];
        }
    }
    

    这会在两个维度上遍历mularray。它将mularray 的每一行(由迭代器i 定义)分配给DataTable dt。它使用您的原始循环(使用迭代器 j 重新定义)为当前行中的每个单元格分配值。

    同样,如果您只尝试输入一行并在每次迭代期间自动将元素向右移动,这可以简化。您可以使用模运算符 (%) 使元素循环,并使用偏移量来选择正确的值。

    string[] mularray = { "F_1", "F_2", "F_3", "F_4", "F_5", "F_6" };
    
    for (int i = 0; i < 6; i++)
    {
            dt.Rows[i]["10:00-11:00"] = mularray[i];
            dt.Rows[i]["11:00-12:00"] = mularray[(i + 1) % 6];
            dt.Rows[i]["12:00-01:00"] = mularray[(i + 2) % 6];
            dt.Rows[i]["02:00-03:00"] = mularray[(i + 3) % 6];
            dt.Rows[i]["03:00-04:00"] = mularray[(i + 4) % 6];
            dt.Rows[i]["04:00-05:00"] = mularray[(i + 5) % 6];
    }
    

    在这种情况下,mularray 已更改为单维 string 数组,因为这两个维度都不是必需的。现在通过计算的索引选择元素,使用(i + 1) % 6代表{1, 2, 3, 4, 5, 0}的模式。同样,下一个元素可以由代表{2, 3, 4, 5, 0, 1}(i + 2) % 6 选择。第一个元素不需要使用模数,因为它使用了i,它已经代表了{0, 1, 2, 3, 4, 5}

    【讨论】:

    • 不使用这个 {"F_2","F_3","F_4","F_5","F_6","F_1"}, {"F_3","F_4","F_5" ,"F_6","F_1","F_2"}, {"F_4","F_5","F_6","F_1","F_2","F_3"}, {"F_5","F_6"," F_1","F_2","F_3","F_4"} 我想动态输入 {"F_6","F_1","F_2","F_3","F_4","F_5"}
    • 我得到了像 F_6,F-1,F_2,F_3,F_4,F_5 这样的 o/p 像这样的 o/p 的每一列
    • @Meena:enter dynamically 是什么意思?您是否希望它根据单个输入行自动将数组元素移动到正确的时隙中?
    猜你喜欢
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-26
    • 1970-01-01
    • 1970-01-01
    • 2021-02-11
    相关资源
    最近更新 更多