0

ハイパーリンク フィールドのナビゲーション URL に追加しようとしています。

グリッドビューに 5 つの列があり、最後の列は

  <asp:HyperLinkField DataNavigateUrlFields="vID" 
            DataNavigateUrlFormatString="Page2.aspx?field={0}" HeaderText="send" 
            Text="send"></asp:HyperLinkField>

それに追加するコードビハインド

Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound

    Dim hk As HyperLink = DirectCast(e.Row.Cells(4).Controls(0), HyperLink)
    hk.NavigateUrl += "&TN=table1"

End Sub

昨日は動作していましたが、誤ってコードを削除したに違いありません。ここでどこが間違っているのかわかりません。「指定された引数が有効な値の範囲外でした。パラメータ名: インデックス」というエラーが表示されます。

4

1 に答える 1

1

をチェックする必要があります。そうしないと、ヘッダーでも をRowType探します。HyperLink

VB

Protected Sub GridView1_RowDataBound(sender As Object, e As GridViewRowEventArgs )
    If e.Row.RowType = DataControlRowType.DataRow Then
        Dim link = DirectCast(e.Row.Cells(4).Controls(0), HyperLink)
        link.NavigateUrl &= "&TN=table1"
    End If
End Sub

C#

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        HyperLink link = (HyperLink)e.Row.Cells[4].Controls[0];
        link.NavigateUrl += "&TN=table1";
    {
}
于 2012-04-18T22:48:00.700 に答える