I have a grid that batch update with Objectdatasource as below, I can get value and set to parameter, but nothing updated to may database, please help me
And my objectsatasource as :
Datacontroller :
InfoClass :
And server-side code :
<telerik:RadGrid ID="GridDD" runat="server" Width="97%" ShowStatusBar="True" AllowSorting="True" PageSize="20" GridLines="None" AllowPaging="True" AutoGenerateColumns="false" DataSourceID="diemdanh_task" Skin="Hay" EnableAJAX="true"> <PagerStyle Mode="NextPrevAndNumeric" AlwaysVisible="true" PageSizeLabelText="Kích cỡ" /> <MasterTableView TableLayout="Fixed" DataKeyNames="ID" EditMode="InPlace" ClientDataKeyNames="ID" CommandItemDisplay="Bottom"> <CommandItemTemplate> <div style="height: 30px; text-align: right;"> <asp:Image ID="imgCancelChanges" runat="server" ImageUrl="~/DesktopModules/YourCompany.DD/Images/cancel.gif" AlternateText="Cancel changes" ToolTip="Cancel changes" Height="24px" Style="cursor: pointer; margin: 2px 5px 0px 0px;" onclick="CancelChanges();" /> <asp:Image ID="imgProcessChanges" runat="server" ImageUrl="~/DesktopModules/YourCompany.DD/Images/ok.gif" AlternateText="Process changes" ToolTip="Process changes" Height="24px" Style="cursor: pointer; margin: 2px 5px 0px 0px;" onclick="ProcessChanges();" /> </div> </CommandItemTemplate> <Columns> <telerik:GridBoundColumn UniqueName="ID" DataField="ID" HeaderText="ID" ReadOnly="True" HeaderStyle-Width="5%" Visible="false" /> <telerik:GridBoundColumn UniqueName="ngaythang" DataField="ngaythang" HeaderText="Ngày tháng" ReadOnly="True" HeaderStyle-Width="5%" /> <telerik:GridBoundColumn UniqueName="mahv" DataField="mahv" HeaderText="Mã HV" ReadOnly="True" HeaderStyle-Width="5%" /> <telerik:GridBoundColumn UniqueName="hoten" DataField="hoten" HeaderText="Họ Tên" ReadOnly="True" HeaderStyle-Width="5%" /> <telerik:GridBoundColumn UniqueName="ngaysinh" DataField="ngaysinh" HeaderText="Ngày Sinh" ReadOnly="True" HeaderStyle-Width="5%" /> <telerik:GridTemplateColumn UniqueName="nghiphep" HeaderText="Nghỉ phép" HeaderStyle-Width="15%"> <ItemTemplate> <asp:Label ID="lblnghiphep" runat="server" Text='<%# Eval("nghiphep") %>' /> <asp:TextBox ID="txtnghiphep" runat="server" Text='<%# Bind("nghiphep") %>' Width="95%" MaxLength="1" Style="display: none" /> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn UniqueName="lydo" HeaderText="Lý do" SortExpression="lydo" HeaderStyle-Width="10%"> <ItemTemplate> <asp:Label ID="lbllydo" runat="server" Text='<%# Eval("lydo") %>' /> <asp:TextBox ID="txtlydo" runat="server" Text='<%# Bind("lydo") %>' Width="95%" Style="display: none" /> </ItemTemplate> </telerik:GridTemplateColumn> </Columns> </MasterTableView> <ClientSettings> <ClientEvents OnRowCreated="RowCreated" OnRowClick="RowClick" OnCommand="RadGrid1_Command" OnRowDestroying="RowDestroying" /> </ClientSettings></telerik:RadGrid><asp:ObjectDataSource ID="diemdanh_task" runat="server" DataObjectTypeName="YourCompany.Modules.DD.DDInfo" SelectMethod="DD_GetAll" TypeName="YourCompany.Modules.DD.DDController" UpdateMethod="DD_Update" OnInit="Page_Load"> <SelectParameters> <asp:Parameter Name="fromdate" DefaultValue="07/11/2011" DbType="String" /> </SelectParameters> <UpdateParameters> <asp:Parameter Name="nghiphep" DbType="String" /> <asp:Parameter Name="lydo" DbType="String" /> <asp:Parameter Name="ID" DbType="String" /> </UpdateParameters></asp:ObjectDataSource>Public Class DDController <DataObjectMethod(DataObjectMethodType.Select)> Public Shared Function DD_GetAll(ByVal fromdate As String) As List(Of DDInfo) Return CBO.FillCollection(Of DDInfo)(DataProvider.Instance.GetAllDD(fromdate)) End Function <DataObjectMethod(DataObjectMethodType.Update)> Public Shared Sub DD_Update(ByVal objest As DDInfo) DataProvider.Instance.UpdateDD(objest.nghiphep, objest.Lydo, objest.ID) End Sub End ClassNamespace YourCompany.Modules.DD Public Class DDInfo Private _mahv As String Private _ngaythang As String Private _nghiphep As String Private _lydo As String Private _ID As String Private _ngaysinh As String Private _hoten As String Public Property ID() As String Get Return _ID End Get Set(ByVal value As String) _ID = value End Set End Property Public Property ngaythang() As String Get Return _ngaythang End Get Set(ByVal value As String) _ngaythang = value End Set End Property Public Property mahv() As String Get Return _mahv End Get Set(ByVal value As String) _mahv = value End Set End Property Public Property hoten() As String Get Return _hoten End Get Set(ByVal value As String) _hoten = value End Set End Property Public Property ngaysinh() As String Get Return _ngaysinh End Get Set(ByVal value As String) _ngaysinh = value End Set End Property Public Property nghiphep() As String Get Return _nghiphep End Get Set(ByVal value As String) _nghiphep = value End Set End Property Public Property Lydo() As String Get Return _lydo End Get Set(ByVal value As String) _lydo = value End Set End Property End ClassProtected Sub RadAjaxManager1_AjaxRequest(ByVal sender As Object, ByVal e As Telerik.Web.UI.AjaxRequestEventArgs) Handles RadAjaxManager1.AjaxRequest If e.Argument = String.Empty Then GridDD.Rebind() End If Dim editedItemIds As String() = e.Argument.Split(":") Dim i As Integer For i = 0 To editedItemIds.Length - 2 Dim ID As String = editedItemIds(i) Dim updatedItem As GridDataItem = CType(GridDD.MasterTableView.FindItemByKeyValue("ID", ID), GridDataItem) UpdateValues(updatedItem) GridDD.DataBind() NextEnd SubProtected Sub UpdateValues(ByVal updatedItem As GridDataItem) Dim txtBox As TextBox = CType(updatedItem.FindControl("txtnghiphep"), TextBox) diemdanh_task.UpdateParameters("nghiphep").DefaultValue = txtBox.Text txtBox = CType(updatedItem.FindControl("txtlydo"), TextBox) diemdanh_task.UpdateParameters("lydo").DefaultValue = txtBox.Text diemdanh_task.UpdateParameters("ID").DefaultValue = updatedItem.GetDataKeyValue("ID").ToString() Try diemdanh_task.Update() Catch ex As Exception SetMessage(Server.HtmlEncode("Không thể cập nhật ngày phép. Lỗi: " + ex.StackTrace).Replace("'", "'").Replace(vbCrLf, "<br />")) End Try SetMessage("Đã cập nhật ngày phép học viên : " & updatedItem.Item("mahv").Text)End Sub