2012-11-20 7 views
5

मैं बस परीक्षण कर रहा था अगर मुझे कोई भाग्य के साथ अपडेट करते समय टेक्स्टबॉक्स से परिवर्तित मूल्य प्राप्त होगा। मैं सिर्फ नया मूल्य नहीं प्राप्त कर सकता हूं। मैं क्या गलत कर रहा हूं? मैंने कई चीजों की कोशिश की है। और यह नवीनतम है। मैं अपने लेबल में अपडेट किया गया नया मान कैसे प्राप्त कर सकता हूं? जब मैं ग्रिड पर संपादित करें पर क्लिक करता हूं और टेक्स्टबॉक्स के मान को बदलता हूं और लेबल पर क्लिक करता हूं तो लेबल केवल टेक्स्टबॉक्स का मूल मान प्रदर्शित करेगा।GridView RowUpdating को नए मान नहीं मिल सकते हैं

protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e) 
{ 
    GridView1.EditIndex = e.NewEditIndex; 

    bindgrid(); 
} 

protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e) 
{ 
    GridViewRow row = GridView1.Rows[e.RowIndex]; 
    Label1.Text = ((TextBox)(GridView1.Rows[GridView1.EditIndex]).Cells[2].Controls[0]).Text; 

    GridView1.EditIndex = -1; 
    bindgrid(); 
} 
+0

क्या आपने कोड डीबग किया है, लेबल 1 में क्या मूल्य प्राप्त हो रहा है? –

+0

यह वहां पढ़ता है ... "जब मैं ग्रिड पर संपादन पर क्लिक करता हूं और टेक्स्टबॉक्स के मान को बदलता हूं और लेबल पर क्लिक करता हूं तो लेबल केवल टेक्स्टबॉक्स का मूल मान प्रदर्शित करेगा।" तो मान लें कि मूल रूप से टेक्स्टबॉक्स में "परीक्षण" है और फिर मैं इसे "asd" में संपादित करता हूं और फिर अपडेट पर क्लिक करता हूं। लेबल में "परीक्षण" दिखाई देगा जैसा कि मैं "asd" नहीं चाहता हूं। – Firze

+0

आपको डेटाबेस में मान को सहेजना है और फिर ग्रिड को नए डेटासोर्स –

उत्तर

16

मुझे लगता है कि जब आप अद्यतन लिंक Gridview नया मान लेने से पहले फिर से बाध्यकारी है धक्का। GridView.DataBind() से पहले आपको if(!IsPostBack) का उपयोग करना होगा।

+0

ओह हाँ यह है। मैंने तुरंत महसूस किया कि यह तब हुआ जब मैंने आपका जवाब देखा। यह उन समस्याओं में से एक था जिसे मैंने इसका उल्लेख करने से पहले भी नहीं सोचा था। – Firze

0

आप पहले से ही वर्तमान पंक्ति होने पर GridView1.Rows[GridView1.EditIndex] क्यों कॉल कर रहे थे? पंक्ति का उपयोग का प्रयास करें आप पहले से ही gridview की गलत पर

GridViewRow row = GridView1.Rows[e.RowIndex]; 
Label1.Text = ((TextBox) row.Cells[2].Controls[0]).Text; 

Read more on this

0

सिर्फ सेट Enableviewstate संपत्ति को पुनः प्राप्त आप नए मूल्य प्राप्त कर सकते हैं।

<asp:GridView runat="server" EnableViewState="False" ID="GridView6" AutoGenerateColumns="false" Width="100%" 
       EmptyDataText="No Record Found" AllowPaging="false" PageSize="10" OnPageIndexChanging="ChangePage" 
       OnRowCommand="RowCommand" OnRowDataBound="GridView6_RowDataBound" > 
+0

यह उत्तर से टिप्पणी के रूप में अधिक दिखता है। जब आप पर्याप्त प्रतिष्ठा प्राप्त करते हैं तो आप दूसरों के पोस्ट पर टिप्पणी करने में सक्षम होंगे। –

+0

मैंने टिप्पणी के जवाब के उत्तर की तरह देखने के लिए अपना उत्तर संशोधित कर दिया है। –

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