Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用列表框为GridView中的第一列数据指定工具提示_C#_Asp.net_Gridview - Fatal编程技术网

C# 如何使用列表框为GridView中的第一列数据指定工具提示

C# 如何使用列表框为GridView中的第一列数据指定工具提示,c#,asp.net,gridview,C#,Asp.net,Gridview,我有一个列表框,其中的项目数与网格视图中的行数匹配。使用此列表框我只想在网格视图中的第一列数据中显示每行的工具提示。我已经在前端绑定了GridView 我尝试过的代码给出了超出范围的索引错误: protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) {

我有一个
列表框
,其中的项目数与
网格视图
中的行数匹配。使用此
列表框
我只想在
网格视图
中的第一列数据中显示每行的工具提示。我已经在前端绑定了
GridView

我尝试过的代码给出了超出范围的索引错误:

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            for (int i = 0; i <= GridView1.Rows.Count; i++)
            {
                String ProCol = GridView1.Rows[i].Cells[0].ToString();

                if (ProCol.Length != 0)
                {
                    e.Row.Cells[0].ToolTip = ListBox1.Items[i].ToString().Trim();
                }
            }
        }
    }
受保护的无效GridView1\u行数据绑定(对象发送方,GridViewRowEventArgs e)
{
如果(e.Row.RowType==DataControlRowType.DataRow)
{

for(int i=0;i在for循环的最后一次迭代中失败,因为索引是零基的(第一项有0个索引,最后一项有
count-1
index)。替换

i <= GridView1.Rows.Count

i它在for循环的最后一次迭代中失败,因为索引是零基的(第一项有0个索引,最后一项有
count-1
索引)。替换

i <= GridView1.Rows.Count

i尝试将代码移动到
GridView
上的
DataBound
事件,而不是在
RowDataBound
中执行该工作。这样,当所有行都已绑定且
GridView.rows
集合已初始化时,它将只运行一次


此外,您应该按照Michal Klouda在其回答中关于
所写的操作,尝试将代码移动到
GridView
上的
DataBound
事件,而不是在
RowDataBound
中进行操作。这样,当所有行都已绑定且
GridView.rows
集合时,它只会运行一次上的已初始化


另外,你应该做Michal Klouda在他的回答中写的关于
GridView1.Rows.Count对我来说是0,所以它确实进入了循环。它确实进入了循环,因为0,GridView1.Rows.Count对我来说是0,所以它确实进入了循环。它确实进入了循环,因为0
protected void GridView1_DataBound(object sender, EventArgs e)
{
    var gv = (GridView)sender;
    for (int i = 0; i < gv.Rows.Count; i++)
    {
        var oneRow = gv.Rows[i];
        String ProCol = oneRow.Cells[0].ToString();

        if (ProCol.Length != 0)
        {
            oneRow.Cells[0].ToolTip = ListBox1.Items[i].ToString().Trim();
        }
    } 

}