1

ハイパーリンクを含むテンプレート フィールドを持つ gridview があります。SQL データの特定のフィールド (グリッドにバインドされたデータ テーブル) のロジックに基づいて、ハイパーリンクの URL を変更したいと考えています。RowDataBound イベントを使用し、データ テーブルのフィールドの値を確認し、必要に応じて NavigateURL を設定する必要があると考えています。

RowDataBound 中にデータ テーブルの列の値にアクセスするにはどうすればよいですか?

ヘッダーまたはフッター行ではないかどうかを判断し、以下のコードでハイパー リンク コントロールにアクセスできます。しかし、設定する URL を決定するためにデータを表示するために、ロジックに空白を描画します。

if (e.Row.RowType == DataControlRowType.DataRow)
    {
        HyperLink hl = (HyperLink)e.Row.FindControl("hlStatus");
    }
4

2 に答える 2

0

Eval メソッドは、求めているものを提供します。

protected void GridView_RowDataBound(object sender, GridViewRowEventArgs e) {
    if (e.Row.RowType == DataControlRowType.DataRow) {
        HyperLink hl = (HyperLink)e.Row.FindControl("hlStatus");
        hl.NavigateUrl = "http://www.google.com?q=" + DataBinder.Eval(e.Row.DataItem, "ColumnName");
    }
}
于 2012-12-19T16:21:49.097 に答える
0

これはトリックを行うようです。より良い方法があれば教えてください。

DataRowView drv = (DataRowView)e.Row.DataItem;
int iStatusCode =  Convert.ToInt32( drv[myDatAccessLayer.Class.Property.ToString()]);

現在の行に必要な列の値が得られます。

于 2012-12-19T16:40:45.657 に答える