2009-02-12 22 views
6

का उपयोग करके चेक किए गए ग्रिडव्यू के अंदर चेकबॉक्स के मूल्य कैसे प्राप्त करें I ग्रिडव्यू में चेकबॉक्स का उपयोग कर रहा हूं .... मैं इसे पहले सेल में उपयोग कर रहा हूं .... जब मैं रन टाइम पर चेकबॉक्स का चयन करता हूं, तो मैं उन मानों को प्राप्त करने की आवश्यकता है ... लेकिन चुनने या चेकबॉक्स पर क्लिक करने पर, यह नहीं ढूंढ रहा है या मूल्य गलत है ... एएसपीनेट बैकएंड में और सी # कोड में कैसे लिखना है?एएसपी .net

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

कोड-पीछे:

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 
      } 
     } 
    } 

वहाँ किसी भी कार्यान्वयन पृष्ठ लोड पर स्क्रिप्ट में किया जाना है?

क्या कोई मदद कर सकता है?

उत्तर

4

आप अपने ग्रिड व्यू को कैसे पॉप्युलेट करते हैं? यदि आप पेज_लोड में ऐसा करते हैं, तो सुनिश्चित करें कि आप इसे पोस्टबैक पर नहीं कर रहे हैं (IsPostBack की जांच करें)।

क्या आपका chkBx परिवर्तनीय शून्य है?

निम्नलिखित कोड काम करता है:

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

कोई अपने काम नहीं कर रहा है ... कोई पृष्ठ लोड पर पोस्टबैक घटना उपयोग नहीं कर रहा .... Am जरूरत ग्रिडव्यू, 1 सेल के साथ चेक बॉक्स के रूप में, यदि मैं 5 में से 3 चेकबॉक्स पर क्लिक करता हूं, तो मुझे उन क्लिक/चेक किए गए चेकबॉक्स की समान पंक्ति मानों को टेक्स्टबॉक्स में होना चाहिए .... यह –

+0

@ user3814410 (सैम) ने पोस्ट किया है > यदि नीचे पंक्ति का उपयोग किया जाता है तो आपका उत्तर काम करेगा। सेल में केवल एक नियंत्रण, सूचकांक 1 नहीं होना चाहिए: 'चेकबॉक्स चॉक = पंक्ति। कैल्स [0]। चेकबॉक्स के रूप में नियंत्रण [1];' क्या यह सच है? क्या आपका उत्तर तदनुसार संपादित किया जाना चाहिए? – 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); 
    } 
    } 
} 

अधिक जानकारी के लिए इस लिंक की जाँच करें: 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 
} 

जाँच यह

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

जेकब उत्तर रेखा से नीचे है, तो काम करेंगे प्रयोग किया जाता है। केवल सेल में भी एक नियंत्रण, सूचकांक 1 होने के लिए नहीं 0

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

धन्यवाद सैम

+0

स्टैक ओवरफ्लो में आपका स्वागत है और आपकी प्रतिक्रिया के लिए धन्यवाद! मैंने इसके बारे में @ जैकोब क्रिस्टेनसेन को एक टिप्पणी पोस्ट की है और यदि आवश्यक हो तो उत्तर संपादित किया जा सकता है। एक बार आपको कुछ प्रतिष्ठा मिल जाएगी, तो आप किसी भी पोस्ट पर टिप्पणी करने में सक्षम होंगे। – francis

संबंधित मुद्दे