2012-11-08 22 views
10

Sadece değişken Nother için değişkenin değeri aktarmak istiyorum rowcommand:satır dizini

protected void gvVariableDetail_RowCommand(object sender, GridViewCommandEventArgs e) 
     { 

      if (e.CommandName == "Edit") 
      { 

       int index = Convert.ToInt32(e.CommandArgument); 
       GridViewRow gvRow = gvVariableConfig.Rows[index]; 
       int rowIndex = index; 

      } 

     } 

Ama yine sıfır değerine sahip RowIndex ve indeks i düzenlemek satır 2 ve böylece endeksi deneyin bu durumda (satır değerini var değer 1'dir (başlangıç ​​0)). Bu nedenle, endeks değerini rowIndex'e nasıl transfer edeceğini bilen var.

+0

serin Yani Bunu yapmak istiyorsun, ama senin sorunun ne? –

+0

javascript ile kullanmak için satır dizini almanız gerekir, ancak bu komut dosyasını, ızgaradaki bir komutla değil, düğmeyle tetiklemek istiyorum. bu yüzden indeks değerini global değişkene aktarmak istiyorum, başka bir buton ile kullanmak için –

+0

Hala soru içermeyen mükemmel bir yanıt. –

cevap

16

CommandSource özelliğini kullanabilir ve ürününü GridViewRow ürününe atabilirsiniz. Sonra kullanabilirsiniz o RowIndex mülkü: Kullanmak isterseniz

GridViewRow gvr = (GridViewRow)((Control)e.CommandSource).NamingContainer; 
int rowIndex = gvr.RowIndex; 

CommandArgument Eğer aspx onu ayarlamak zorunda:

CommandArgument='<%# ((GridViewRow) Container).RowIndex %>' 

sonra bu da çalışır:

int RowIndex = int.Parse(e.CommandArgument.ToString()); 
+2

ileti var 'System.Web.UI.WebControls.ContentPlaceHolder' türünde nesne 'System.Web.UI.WebControls.GridViewRow' yazmak için açılamıyor. Yaklaşım 1 kullanarak –

+0

i "i e.CommandName == (bu yüzden sadece kod ... protected void gvVariableDetail_RowCommand (object sender, GridViewCommandEventArgs e) { eğer yayınlayacağız asp için deneyimsizim rowcommand –

+0

tetiklemek için genişletilmiş tablo görünümünde kontrolünü kullanıyorum dönüştürme dizesi int çünkü son çözüm kullanarak düzenleme ") { ........... } } bunu yapamaz –