Tôi đang sử dụng RadGrid với nhiều cột có thể được chỉnh sửa (BatchEdit như excel).ASP NET. Rad Lưới. Mất các giá trị đã thay đổi trên postback
<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>
Datasource của RadGrid là 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>
On OnNeedDataSource sự kiện Tôi đang thiết Id của ObjectDataSource để RadGrid.DataSourceId.
protected void RadGrid1_NeedDataSource(object sender, GridNeedDataSourceEventArgs e)
{
RadGrid1.DataSourceID = "TestSource";
}
Trong trang hiện tại Tôi cũng có nút "Gửi email" gửi giá trị chèn vào ổ cắm rad.
<asp:Button ID="SendEmail" OnClick="SendEmail_Click" Text="Send" runat="server" />
Vấn đề là trên SendEmail_Click DataSource là rỗng. Nhưng tôi muốn có DataSource mới được thay đổi.
protected void SendEmail_Click(object sender, EventArgs e)
{
RadGrid1.Rebind();
// RadGrid1.Datasource is null
}
Làm cách nào để giải quyết vấn đề này? Rất cám ơn.
Cảm ơn câu trả lời của bạn. Nhưng trong trường hợp này, các hàng RadGrid có giá trị cũ và không phải giá trị mới được chỉnh sửa. –
@MirzodalerAtaev Bạn có thể lưu các giá trị "mới" trong db khi nhấp vào nút và truy xuất từ cơ sở dữ liệu (hoặc từ bất kỳ thứ gì bạn đang ràng buộc lưới của mình). .Text thuộc tính của điều khiển trả về giá trị hiện tại của điều khiển. – mybirthname