2

データベースから入力されたグリッドビューがあります。

特定の列の各セルがクリックされると、2番目のページにリンクし、セルのテキスト値をクエリ文字列として渡すようにする必要があります(つまり、http://mysite.com/page.aspxへのリンク) ?CellText = '何とか何とか何とか')。簡単そうに聞こえますが、理解できません。

これは私のページが現在どのように見えるかです:

<asp:GridView id="gdvTargets" 
          runat="server" 
          AutoGenerateEditButton="true" 
          OnRowEditing="gdvTargets_RowEdit"
          OnRowUpdating="gdvTargets_RowUpdating" 
          OnRowUpdated="gdvTargets_RowUpdated" 
          OnRowCancelingEdit="gdvTargets_RowCancelingEdit"

          cssClass="grid"
          >
<HeaderStyle CssClass="GridHeader"></HeaderStyle>

そしてその背後にある私のc#コード:

 protected void Page_Load(object sender, EventArgs e)
    {
year = Request.QueryString["YearSelector"];
targetType = Request.QueryString["TargetType"];

      gdvTargets.DataSource = this.Ets.Api.Util.Db.GetDataTable("EXEC sp_getTargets " + year + ", " + targetType).Return;
      gdvTargets.DataBind();

    }

これにより、次のようなテーブルが作成されます。

ID        System        Target 1       Target 2       Target3       Target 4
0         ALL           10             20             15             10
2         Machine1      4              7              7              7
5         Xfgb 45       6              13             8              3

システム列をクリックして新しいページにリンクしたいのですが、システムの名前を付けてください。これが理にかなっていることを願っています!あなたの助けをありがとう:D

4

3 に答える 3

4

あなたができることは次のとおりです。

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
            e.Row.Cells[0].Text = "<a href=''>" + e.Row.Cells[0].Text + "</a>";
}

0を列インデックスに置き換えます

于 2012-10-02T14:25:05.223 に答える
1

イベントを使用しOnRowCommandます。マークアップで、を設定しTemplateField、リンクボタンのとを必要な情報にLinkButton設定します。つまり、 「リンク」(または任意の名前)とテーブル行のID、またはページへのURLなどに名前を付けることができます。CommandNameCommandArgumentsCommandNameCommandArgument

行コマンドイベントが発生したら、それがどのコマンドであるかを確認し、その中で必要なことを実行します。

public void gridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
    if(e.CommandName == "Link")
    {
        int key = int.Parse(e.CommandArgument.ToString());
        Response.Redirect(string.Format(
            "http://mySite/index.aspx?id={0}", key));
    }
}
于 2012-10-02T14:17:33.250 に答える
0

に追加HyperLinkFieldGridview、次のプロパティを設定します。

<asp:HyperLinkField DataNavigateUrlFields="System" 
                    DataNavigateUrlFormatString="page.aspx?CellText={0}" 
                    DataTextField="System" />

DataTextField:列に表示するテキスト:
DataNavigateUrlFormatStringインデックスが0のクエリ文字列に沿って移動するURL:クエリ文字列
DataNavigateUrlFieldsに渡すフィールド。複数のフィールドを渡す場合は、コンマで区切ります。

于 2012-10-02T14:30:17.667 に答える