2016-10-21 7 views
7

पर मूल्य बदल गए हैं मैं कई कॉलम के साथ एक रैडग्रिड का उपयोग कर रहा हूं जिसे संपादित किया जा सकता है (एक्सेल की तरह बैचएडिट)।एएसपी नेट। रेड ग्रिड पोस्टबैक

<telerik:RadGrid RenderMode="Lightweight" ID="RadGrid1" runat="server" AutoGenerateColumns="False"GridLines="Both"OnNeedDataSource="RadGrid1_NeedDataSource" AllowAutomaticInserts="True" AllowAutomaticUpdates="True"AllowAutomaticDeletes="True"> 
      <ItemStyle Wrap="false" /> 
      <MasterTableView TableLayout="Fixed" NoMasterRecordsText="" ShowFooter="true" EditMode="Batch"> 
       ... 
      </MasterTableView> </telerik:RadGrid> 

RadGrid के डेटा स्रोत OnNeedDataSource घटना मैं ObjectDataSource का क्रमांक सेट कर रहा हूं RadGrid.DataSourceId करने पर ObjectDataSource

<asp:ObjectDataSource ID="TestSource" runat="server" TypeName="TestClass" SelectMethod="GetAllItems"> 
     <UpdateParameters> 
       <asp:Parameter Name="Name" Type="String" /> 
       <asp:Parameter Name="LastName" Type="String" /> 
       <asp:Parameter Name="BirthData" Type="DateTime" /> 
     </UpdateParameters> </asp:ObjectDataSource> 

है।

protected void RadGrid1_NeedDataSource(object sender, GridNeedDataSourceEventArgs e) 
{ 
     RadGrid1.DataSourceID = "TestSource"; 
} 

वर्तमान पृष्ठ में मेरे पास "ईमेल भेजें" बटन भी रेड गर्ड डाले गए मान भेजें।

<asp:Button ID="SendEmail" OnClick="SendEmail_Click" Text="Send" runat="server" /> 

समस्या यह है कि SendEmail_Click डेटासोर्स शून्य है। लेकिन मैं नया बदल गया डेटासोर्स प्राप्त करना चाहता हूं।

protected void SendEmail_Click(object sender, EventArgs e) 
{ 
     RadGrid1.Rebind(); 
     // RadGrid1.Datasource is null 
} 

मैं इस समस्या को कैसे हल कर सकता हूं? बहुत धन्यवाद।

उत्तर

1

DataSourceGridView में पोस्टबैक में किसी भी लगातार तरीके से संग्रहीत नहीं किया जाता है, इसलिए आपको इसे कहीं सेव करना होगा या आपको अपने डेटाबेस से फिर से अनुरोध करना होगा। इसके कारण आपका डेटा स्रोत शून्य है।

यह आपके ग्रिड के स्रोत को लेने के लिए उनके Forum में कोड का सुझाव दिया गया है।

DataTable dtRecords = new DataTable(); 
    foreach (GridColumn col in grdShippedOrders.Columns) 
    { 
     DataColumn colString = new DataColumn(col.UniqueName); 
     dtRecords.Columns.Add(colString); 

    } 
    foreach (GridDataItem row in grdShippedOrders.Items) // loops through each rows in RadGrid 
    { 
     DataRow dr = dtRecords.NewRow(); 
     foreach (GridColumn col in grdShippedOrders.Columns) //loops through each column in RadGrid 
       dr[col.UniqueName] = row[col.UniqueName].Text; 
     dtRecords.Rows.Add(dr); 
    } 
    return dtRecords; 
+0

आपके उत्तर के लिए धन्यवाद। लेकिन इस मामले में समस्या यह है कि रैडग्रिड पंक्तियों में पुराने मान हैं और नए संपादित मूल्य नहीं हैं। –

+0

@MirzodalerAtaev आप बटन पर क्लिक करके डीबी में "नए" मानों को सहेज सकते हैं और डेटाबेस से पुनर्प्राप्त कर सकते हैं (या जो भी आप अपने ग्रिड को बाध्य कर रहे हैं)। नियंत्रण की अतिरिक्त संपत्ति नियंत्रण के वर्तमान मूल्य को वापस लाती है। – mybirthname

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