我有一个包含几行的网格视图。我要做的基本上是在gridview中获取一个字符串的特定值,每次更改一行时(使用onrowdebound)。
我试过很多选择,是的,我用谷歌搜索过,但我找不到适合我需要的解决方案。如果你能帮我,我将不胜感激。
我的当前代码(不起作用,错误消息:索引超出范围)。必须为非负且小于集合的大小。
参数名称:索引):

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

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

最佳答案

如果更改行意味着“在选择任何行时”,则每次单击行时都可以使用选定的索引更改事件。
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;
}

关于c# - 如何在RowDataBound的gridview中获取单元格的值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27511091/

10-09 06:54