2017-05-04 11 views
0

GridViewには7つの列があります。 6列にはLinkBut​​tonがあります。選択した行グリッドビューからCell値を取得

私がしたいのは、1番目の列にあるデータ値を取得し、それらのLinkBut​​onsの1つがクリックされたときに、そのページの他の場所のラベルに配置することです。

たとえば、最初の列の値は01:00 - 02:00のようになります。ここで

は、私がこれまで持っているものです:私のGridViewのはgvappts

命名された私は、このプロパティを追加しました:私のLinkBut​​tonsの1にOnRowDataBound="gvappts_DataBound"

内部gvapptsを私はコマンドを追加し、 コマンドの引数<asp:LinkButton id="lbd1" runat="server" Text='<%#(Eval("Day1"))%>' CommandName="GetData" CommandArgument='<%# Container.DataItemIndex %>'/>

現在の行を選択したいからです。ボタンをクリックすると

protected void gvappts_RowCommand(object sender, System.Web.UI.WebControls.GridViewCommandEventArgs e) 
    { 
     if (e.CommandName == "GetData") 
     { 
      //Get rowindex 
      int rowindex = Convert.ToInt32(e.CommandArgument); 
      //Get Row 
      GridViewRow gvr = gvappts.Rows[rowindex]; 
      //Set the label value 
      lblTimeSelected.Text = gvr.Cells[0].Text; 
     } 
    } 

私はすべてのエラーを得ることはありませんが、値は返されません:私は.csで

は、私は、これは持っています。私は何を見落としていますか?

+0

グリッドの第1列にバインドした 'CommandArgument'に同じソース列をバインドしないのはなぜでしょうか。 – niksofteng

答えて

2

これを試してください。

GridViewRow gvr = gvappts.Rows[rowindex]; 
Label myLabel = gvr.FindControl("MyLabel Id") as Label ; 
lblTimeSelected.Text = myLabel.Text; 
関連する問題