如何在RowDataBound中的gridview中获取单元格的值?

时间:2014-12-16 18:06:16

标签: c# html asp.net gridview

我有一个包含多行的网格视图。我尝试做的基本上是每次更改一行时使用GridView中的字符串的特定值(使用OnRowDataBound)。

我已经尝试了很多选项,是的,我确实谷歌了,但我找不到符合我需要的解决方案。如果你能帮助我,我会很感激。

我当前的代码(不起作用,错误消息: 索引超出范围。必须是非负数且小于集合的大小。 参数名称:index ):

protected void ViewJobs_DataBind(object sender, GridViewRowEventArgs e)
    {
        int index = Convert.ToInt32(e.Row.RowIndex);
        string replymessage = ViewJobs.Rows[index].Cells[1].Text;

        if (!String.IsNullOrEmpty(replymessage))
            IfReply = true;
    }
}

HTML:

    <% if (IfReply == true) { %>
        <span style=" font-weight: bold; font-size: 20px;"> Reply To: <%# Eval("Reply") %>  | By: <%# Eval("Sender") %> </span>
        <% IfReply = false;
    } %>     

如果 replymessage 在gridview的当前行中不为null,则基本上显示上面的跨度。

1 个答案:

答案 0 :(得分:0)

如果通过更改行意味着&#34;选择任何行&#34;,则可以在每次单击行时使用选定的索引更改事件。

aspx页面: -

<asp:gridview id="ViewJobs"  runat="server"      
onselectedindexchanged="ViewJobs_SelectedIndexChanged">

代码背后: -

void ViewJobs_SelectedIndexChanged(Object sender, EventArgs e)
{
   GridViewRow row = ViewJobs.SelectedRow;
   string replymessage = row.Cells[1].Text;
    if (!String.IsNullOrEmpty(replymessage))
        IfReply = true;
}