指定的参数超出了有效值的范围 - RowDataBound

时间:2015-10-15 04:58:41

标签: c# asp.net gridview

我想在行数据绑定事件中更改导航url属性。如果那个coloumn没有与链接绑定我想添加导航url =#

<asp:TemplateField HeaderText="Reportd Link"  ItemStyle-HorizontalAlign="center" >
                    <ItemTemplate>
                   <asp:HyperLink ID="Lbl_RptLnk1" runat="server" NavigateUrl='<%#Eval("ReportLinks")%>'
                            Text='Reported Link' Target="_blank" ToolTip='<%#Eval("ReportLinks")%>'></asp:HyperLink>

                 </ItemTemplate>
                    <ItemStyle HorizontalAlign="Left" />
                </asp:TemplateField>

aspx.cs代码

  if (e.Row.RowType == DataControlRowType.DataRow)
    {
        HyperLink myLink = (HyperLink)e.Row.Cells[4].Controls[0];//slno,linkname,linkid,link

        if (myLink.NavigateUrl == "Waiting for Approval")
        {
            myLink.NavigateUrl = "#";
        }

    }

得到错误说明 - 指定的参数超出了有效值的范围。 参数名称:index

1 个答案:

答案 0 :(得分:1)

RowDataBound事件中,因为您的控件是TemplateField内的ASP服务器控件,您可以使用行上的FindControl方法来查找控件: -

HyperLink Lbl_RptLnk1 = (HyperLink)e.Row.FindControl("Lbl_RptLnk1");
if (Lbl_RptLnk1.NavigateUrl.Trim() == "Waiting for Approval")
{
     Lbl_RptLnk1.NavigateUrl = "#";
}