2009-07-15 20 views
2

私のウェブページでは、私はgridviewを使用しました。このグリッドビューには、ユーザー情報のグループが表示されます。 スマートタグメニューからボタンを1つ追加しました。私の要件は、各ユーザーに対応するボタンを押すと、別のページにリダイレクトされ、対応するユーザーの情報が表示されるということです。このタイプの出力を得るために私は何をしますか? Uボタンを追加し、属性のCommandName追加する必要がgridview編集

答えて

3

<asp:Button ID="EditBtn" runat="server" CommandName="Edit" /> 

は、グリッドのitemcommandのイベントに

protected void GridView1_ItemCommand(object source, GridViewCommandEventArgs e) 
    { 
     if (e.CommandName == "Edit") 
     { 
      //Redirect to user page information 
      Response.Redirect(PageURL); 
     } 
    } 
1

代わりのボタン以下のいずれかを作るのですか列ハイパーリンク。アイテムをクリックすると、新しいページにリダイレクトされます(Javascriptを使用)。これにより、ボタンとポストバックの列を追加する必要がなくなります。

これにはDataTextFormatStringを使用する必要があります。

上記サンプル中の試料

 <asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="False"> 
     <Columns> 
      <asp:BoundField DataField="no" HeaderText="SNo" /> 
      <asp:BoundField DataField="file" DataFormatString="&lt;a href=javascript:ShowAssetDetail('{0}');&gt;{0}&lt;/a&gt;" 
       HeaderText="Asset Desc" HtmlEncodeFormatString="False" /> 
     </Columns> 
    </asp:GridView> 

JS関数ShowAssetDetail()は、リダイレクトページに渡す値を取らなければなりません。言うまでもなく、JS関数を追加して書く必要があります。

+1

は良いアイデアですが、あなたは非常に後ろ向きな方法でそれについてつもりだ、あなたはHyperLinkFieldを使用するには、あなたのコラム – Austin

+0

二つの懸念 1を設定するためにHyperLinkFieldを使用する必要があり、私が思うに、テンプレートを使用する必要があります。 2.私はコードの背後や往復を避けるために、HTMLハイパーリンクを推奨しました。 とにかく、お返事ありがとうございます – Kaz

3

ボタンを使用してページを他のページにリダイレクトしたい場合、Ahmyの答えがユーザーの情報で表示されます。しかし、取り残されたことの1つは、リダイレクト先のページのクエリ文字列に入れて、どのユーザーかを識別できるボタン(ユーザー固有のIDなど)を使用してコマンド引数を渡すことができたことです。それは次のようになります。

<asp:TemplateField HeaderText="Edit User"> 
    <ItemTemplate> 
     <asp:Button ID="EditBtn" Text="Edit User" CommandName="Edit" 
      CommandArgument='<%# Eval("UserID") %>' runat="server" /> 
    </ItemTemplate> 
</asp:TemplateField> 

その後

protected void GridView1_ItemCommand(object source, GridViewCommandEventArgs e) 
{ 
    if (e.CommandName == "Edit") 
    { 
     //Redirect to user page information 
     Response.Redirect("UserProfilePage.aspx?userID=" + e.CommandArgument); 
    } 
} 

私はHyperLinkFieldを使用することで最良の選択肢だと思うボタンを、使用する別の方法の背後にあるコードで。ボタンを使用する場合は、ページをサーバーにポストバックしてから、ユーザーのブラウザにリダイレクトする必要があります。ハイパーリンクを使用すると、ユーザーは正しいページにまっすぐ進みます。それはステップを保存し、JavaScriptに依存しません。ハイパーリンクを追加する

<asp:HyperLinkField DataTextField="UserName" DataNavigateUrlFields="UserID" 
    DataNavigateUrlFormatString="UserProfilePage.aspx?userID={0}" 
    HeaderText="Edit User" /> 
関連する問題