2016-03-28 2 views
-3

グリッドビュー用の特定の行のデータを1つのボタン「ビュー」クリックで作成し、それをSilverlightビューアに渡すだけです。 ここに私が理解しようとしている "viewall"ボタンがあります。グリッドビュー用の単一の「ビュー」ボタンメソッドの作成

protected void btnViewAll_Click(object sender, EventArgs e) 
    { 
     string id = HttpContext.Current.Request.Headers["id"]; 
#if DEBUG 
     if (id == null) 
      id = "111"; // Use my own id for testing locally 
#endif 
     using (aDataContext dc = new aDataContext()) 
     { 
      var query = (from a in dc.aLists 
         where a.ID == id 
         select new 
         { 
          a.aNumber, 
          a.bNumber, 
          a.cNumber, 
          a.dNumber, 
         } 
          ); 

      List<aListItem> List = new List<aListItem>(); 
      foreach (var queryItem in query) 
      { 
       aList.Add(new aListItem() 
       { 
        aNumber = queryItem.aNumber, 
        bNumber = queryItem.bNumber, 
        cNumber = queryItem.cNumber, 
        dNumber = queryItem.dNumber 
       }); 
      } 
      Session["aList"] = aList; 
     } 
     Session["Database"] = null; 
     Response.Redirect("Viewer.aspx" + "?UseList=true"); 
    } 
+1

あなたはどんな問題がありますか? GridViewにボタンを挿入するのですか?または、ビューアウィンドウを開く(またはリダイレクトする)? – ConnorsFan

答えて

0

解決方法1: それは、GridViewコントロールにButtonFieldで行うことができます。

フィールドは「NAME1」場合のGridViewのDataKeyNames(例えばに行固有の情報を追加し、 "あなたのSilverlightのビューアで閲覧するために必要なデータソースのAGE2" ):

<asp:GridView ID="gvClients" DataKeyNames="name1,age2" ... > 

は、GridViewコントロールにButtonFieldを追加します。

gvClients.RowCommand += new GridViewCommandEventHandler(gvClients_RowCommand); 

をして、コマンド処理:

<asp:ButtonField ButtonType="Button" CommandName="View" Text="View" /> 

RowCommandイベントハンドラを設定します(コードマークアップまたはで行うことができます)

void gvClients_RowCommand(object sender, GridViewCommandEventArgs e) 
{ 
    int rowIndex = Convert.ToInt32(e.CommandArgument); 
    string name1 = (string)gvClients.DataKeys[rowIndex].Values["name1"]; 
    int age2 = (int)gvClients.DataKeys[rowIndex].Values["age2"]; 

    // Open docName with the viewer 
    ... 
} 

ソリューション2:代替を、どのポストバックを避けるには、HyperLinkFieldを使用することです:

<asp:HyperLinkField Text="View" DataNavigateUrlFormatString="Viewer.aspx?Name={0}&Age={1}" DataNavigateUrlFields="name1,age2" />