如何在 OnRowDataBound 的网格视图中获取单元格的值

本文关键字:获取 单元格 视图 网格 OnRowDataBound | 更新日期: 2023-09-27 18:34:21

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

我尝试了很多选择,是的,我确实用谷歌搜索了它,但我找不到适合我需求的解决方案。如果您能帮助我,我将不胜感激。

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

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;
    }
}

目录:

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

基本上是为了显示上面的跨度,如果回复消息在网格视图中的当前行中不为空。

如何在 OnRowDataBound 的网格视图中获取单元格的值

如果"通过更改行"表示"选择任何行时",则可以在每次单击行时使用选定的索引更改事件。

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;
}