2011-12-20 8 views
0

私はASP.NETアプリケーションを持っています。このアプリケーションにはGridViewがあります。このGridViewには、ハイパーリンクを含める必要があるTemplateFieldがあります。これらのハイパーリンクをハイパーリンクに移動するにはASP.NETのGridView ItemTemplateでQueryStringParameterとControlParameterを使用する

add.aspx?id1=[QueryStringParameterValue]&id2=[ControlParameterValue]&id3=[CurrentRecordID] 

どうすればいいですか?そうでない場合は、別のページにユーザーをリダイレクトし、考慮に入れるための最良の方法は何ですか:

  • 現在のクエリ文字列から値(QueryStringParameterValue)ドロップダウンで選択した項目の
  • 値リスト(ControlParameterValue)
  • 現在のレコードIDは

現在、私のGridViewは次のようになります。

<asp:DropDownList ID="myDropDownList" Runat="Server" DataSourceID="myDataSource" DataTextField="Name" DataValueField="ID" /> 
<GridView ID="myGridView" runat="Server"> 
    <Columns> 
    <asp:BoundField DataField="ID" HeaderText="ID" /> 
    <asp:BoundField DataField="Name" HeaderText="Name" /> 
    <asp:TemplateField HeaderText="Action"> 
     <ItemTemplate> 
     <a href="#">View Details</a> 
     </ItemTemplate> 
    </asp:TemplateField> 
    </Columns> 
</asp:GridView> 

しかし、今私は立ち往生しています。 ItemTemplate内に含める3つのアイテムをどのように配線するのですか?

ありがとうございました!

答えて

0

ASPX

<a href='<%# CreateUrl(Eval("id")) %>'>View details </a> 

C#

public string CreateUrl(obj value) 
{ 
     var p = request.querystring["querystringname"]; 
     if(p!=null) 
     { 
     return "add.aspx?id1=" + p + "&id2=" + mydropdownlist.selectedvalue + "&id3=" + id; 
     } 
     return ""; 
} 
後ろ

コード

0

私は、リクエストデータをレスポンスデータから分離します。このように何かが変更された場合(ドロップダウンリストやクエリ文字列をフォームのポストなどで置き換えた場合)、gridviewは変更されません。

protected string Value1{get {return Request.QueryString["key"];}} 
protected string Value2 {get {return DropDown.SelectedValue;}} 

マークアップ

<GridView ID="myGridView" runat="Server"> 
    <Columns> 
    ... 
    <asp:TemplateField HeaderText="Action"> 
     <ItemTemplate> 
     <a href='<%=string.Format("add.aspx?id1={0}&id2={1}&id3={2}", Value1, Value2, Eval("ID"))%>'>View Details</a> 
     </ItemTemplate> 
    </asp:TemplateField> 
    </Columns> 
</asp:GridView> 
関連する問題