2009-02-12 20 views
6

Izgara görünümünde onay kutusunu kullanıyorum .... 1. hücrede kullanıyorum .... Çalışma zamanında onay kutusunu işaretlediğimde, I Bu değerleri almam gerekiyor ... ama onay kutusunu tıkladığınızda veya tıkladığınızda, bu FALSE olarak almıyor ya da değer alıyor ... asp.net arka ucunda ve C# kodunda nasıl yazılır?CheckBox'lar, asp .net kullanılarak denetlenen bir grid görünümünde nasıl alınır

<asp:TemplateField> 
    <ItemTemplate > 
     <asp:checkbox id="ShowAddress" runat="server" /> 
    </ItemTemplate> 
</asp:TemplateField> 

kod arkadaki:

protected void Button1_Click(object sender, EventArgs e) 
    { 
     // Looping through all the rows in the GridView 

     foreach (GridViewRow di in GridView1.Rows) 
     { 
     CheckBox chkBx = (CheckBox)di.FindControl("ShowAddress"); 

      if (chkBx != null && chkBx.Checked) 
      { 
       /// put your code here 
      } 
     } 
    } 

Sayfanın yüklendiği senaryodaki yapılacak herhangi uygulaması var mı?

Herkes yardımcı olabilir mi?

cevap

4

GridView'ınızı nasıl doldurursunuz? Bunu Page_Load içinde yaparsanız, geri göndermelerde yapmadığınızdan emin olun (IsPostBack'i kontrol edin).

chkBx değişkeniniz boş mu?

Aşağıdaki kod çalışır: Daha fazla ayrıntı için

protected void Button1_Click(object sender, EventArgs e) 
    { 
     foreach (GridViewRow row in GridView1.Rows) 
     { 
      CheckBox chk = row.Cells[0].Controls[0] as CheckBox; 
      if (chk != null && chk.Checked) 
      { 
       // ... 
      } 
     } 
    } 
+0

yok onun çalışmıyor ... Sayfanın yüklendiği geri gönderme olayı kullanmıyorum hayır .... mıyım size Sam ederiz 1 olmak gerekmez greyview sahip olmak, onay kutusu olarak 1 hücre ile, ben 3 onay kutusunu tıklatırsanız 5, sonra ben bu tıklatılmış/işaretli onay kutusunun metin kutusuna olması için aynı satır değerlerine ihtiyacım var .... bu nasıl olur –

+0

@ user3814410 (Sam) bunu gönderdi > Aşağıdaki çizgi kullanılırsa cevabınız çalışacaktır. Hücrede sadece bir kontrol bile olsa, indeks 1 değil 0 olmalıdır: 'CheckBox chk = row.Cells [0]. CheckBox olarak [1] kontrol eder;' 'Bu doğru mu? Cevabınız buna göre düzenlenmeli mi? – francis

4
StringCollection idCollection = new StringCollection(); 
string strID = string.Empty; 

for (int i = 0; i < GridView1.Rows.Count; i++) 
{ 
    CheckBox chkDelete = (CheckBox) GridView1.Rows.Cells[0].FindControl("chkSelect"); 
    if (chkDelete != null) 
    { 
    if (chkDelete.Checked) 
     { 
      strID = GridView1.Rows.Cells[1].Text; 
     idCollection.Add(strID); 
    } 
    } 
} 

bu bağlantıyı kontrol edin: http://www.itworld2.com/ghowto.aspx?id=69

1
protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!IsPostBack) 
    { 
    Loadgridview();// its a correct 
    }//   not Loadgridview() here if you load above error is occur 
} 

o

0
int i = 0; 
foreach (GridViewRow row in GridView1.Rows) 
{ 
    CheckBox chk = (CheckBox)GridView_AdminTags.Rows[i].Cells[0].FindControl("chkTag"); 
    if (chk != null) 
     if (chk.Checked) 
     { 
      ////.......; 
     } 
    i++; 
} 
i = 0; 
-1

Jakob Cevap sınırının altında olursa çalışacaktır kontrol kullanıldı. Sadece hücrede bile bir kontrol, endeks değil 0

CheckBox chk = row.Cells[0].Controls[1] as CheckBox; 

+0

Stackoverflow'a Hoş Geldiniz ve görüşleriniz için teşekkür ederiz! Bu konuda @JakobChristensen 'e bir yorum gönderdim ve gerekirse cevap verilebilir. Bir kez bir kez olsun, herhangi bir gönderiye yorum yapabileceksiniz. – francis

İlgili konular