2012-04-07 10 views
3

リンクボタンをクリックすると、行のインデックスを取得する必要があります。しかし、それは分かりません。グリッドビューでlinkbuttonをクリックすると、行インデックスを取得する方法

私のC#のコード:

int rowIndex = Convert.ToInt32(e.CommandArgument); 

コードはここに来るとき、私はbuttonfieldをクリックしたときしかし、それは例えば作品({「入力文字列が正しい形式ではありませんでした。」})エラーになります。どうすればいい?

asp.netコード

<asp:TemplateField> 
      <ItemTemplate> 
       <asp:LinkButton ID="LinkButton2" runat="server" CommandName="View"><%#Eval("RSS_Title") %></asp:LinkButton> 
      </ItemTemplate> 

答えて

6

私はそれをこのようなものだろう:

をASPX

<asp:GridView ID="YourGrid" 
       OnRowCommand="YourGrid_RowCommand" 
       OnRowCreated="YourGrid_RowCreated" 
       runat="server"> 
    <Columns> 
    <asp:TemplateField> 
     <ItemTemplate> 
      <asp:LinkButton ID="LinkButton2" runat="server" CommandName="View"> 
      <%#Eval("RSS_Title") %></asp:LinkButton> 
     </ItemTemplate> 
    </asp:TemplateField> 
    </Columns> 
</asp:GridView> 

CS

protected void YourGrid_RowCommand(Object sender, GridViewCommandEventArgs e) 
{ 
    if(e.CommandName=="View") 
    { 
     int index = Convert.ToInt32(e.CommandArgument); 
    } 
} 
protected void YourGrid_RowCreated(Object sender, GridViewRowEventArgs e) 
{ 
    if(e.Row.RowType == DataControlRowType.DataRow) 
    { 
     var LinkButton2 = (LinkButton)e.Row.FindControl("LinkButton2"); 
     LinkButton2.CommandArgument = e.Row.RowIndex.ToString(); 
    } 

} 
+0

sarvar206の答え@私の問題を解決しsarvar206答え@おかげ – leventkalay92

+0

だけのために動作します最初の行10行ある場合は、行インデックスは1のままです。これにより、同じ行から常に値を取り出すことになります。それがあなたが望むものなら、それをしてください。それ以外の場合は、私の答えはあなたに行コマンドの目標行を取得します – Arion

+0

はい、それはちょうど静的な値を前提としています。動的な値が必要な場合は、コードの背後またはEvalコマンドで設定する必要があります。ありがとう – sarwar026

2

次を使用してください:、私は意味

<asp:LinkButton ID="LinkButton2" runat="server" CommandName="View" CommandArgument="1"><%#Eval("RSS_Title") %></asp:LinkButton> 

CommandArgumentを追加します。