Hi,
I have a page with a Button, a TextBox, a WebDataGrid and a ObjectDataSource, when I edited some field on the datagird and key down Enter, and have an error: Requested reocrd cannot be found by key. How can I fix the code? thx.
The following is my code.
.aspx----------------------------------TextBox<asp:TextBox ID="txtSysGroupName" runat="server"></asp:TextBox>
Button<asp:Button ID="btnSelect" runat="server" onclick="btnSelect_Click" Text="Search" />
ObjectDataSource <asp:ObjectDataSource ID="odsSysGroup" runat="server" DeleteMethod="Delete" InsertMethod="Insert" OldValuesParameterFormatString="original_{0}" onupdating="odsSysGroup_Updating" SelectMethod="GetData" TypeName="WebApplication_DMS.dsDMSSTableAdapters.sysGroupTableAdapter" UpdateMethod="Update"> <DeleteParameters> <asp:Parameter Name="Original_sysGroupID" Type="String" /> </DeleteParameters> <InsertParameters> <asp:Parameter Name="sysGroupID" Type="String" /> <asp:Parameter Name="sysGroupName" Type="String" /> <asp:Parameter Name="sysGroupStatus" Type="Int32" /> <asp:Parameter Name="sysComID" Type="String" /> <asp:Parameter Name="memo" Type="String" /> <asp:Parameter Name="actUser" Type="String" /> <asp:Parameter Name="actTime" Type="DateTime" /> </InsertParameters> <UpdateParameters> <asp:Parameter Name="sysGroupName" Type="String" /> <asp:Parameter Name="sysGroupStatus" Type="Int32" /> <asp:Parameter Name="sysComID" Type="String" /> <asp:Parameter Name="memo" Type="String" /> <asp:Parameter Name="actUser" Type="String" /> <asp:Parameter Name="actTime" Type="DateTime" /> <asp:Parameter Name="Original_sysGroupID" Type="String" /> </UpdateParameters> </asp:ObjectDataSource>
.cs----------------------------protected void btnSelect_Click(object sender, EventArgs e){ odsSysGroup.SelectParameters.Clear(); if (string.IsNullOrEmpty(txtSysGroupName.Text)) { odsSysGroup.SelectMethod = "GetDataBySysUserID"; odsSysGroup.SelectParameters.Add("SysUserID", User.Identity.Name); } else { odsSysGroup.SelectMethod = "GetDataBySysGroupName"; odsSysGroup.SelectParameters.Add("SysGroupName", txtSysGroupName.Text); odsSysGroup.SelectParameters.Add("SysUserID", User.Identity.Name); }
WebDataGrid1.DataSource = odsSysGroup; WebDataGrid1.DataBind();}
Hello Su Min,
Please refer to this thread - http://ko.infragistics.com/community/forums/p/74785/378909.aspx for further questions on the matter.
Hi Nikolay,
In the post - http://ko.infragistics.com/community/forums/t/74785.aspx is the same question.
the button-btnStop want to change "sysGroupStatus" to "60"the button-btnDelete want to change "sysGroupStatus" to "80"
How should I do?
Hi Su Min,
What do you mean by "change a field directly"? If you have made some changes to the grid, clicking a button and initiating a postback will automatically save the changes to the datasource.
Hello,
But I want to use button to change some field directly, How should I trigger it?
I thought should type some code in WebDataGrid1.ItemCommand event?likeprotected void WebDataGrid1_ItemCommand(object sender, Infragistics.Web.UI.GridControls.HandleCommandEventArgs e){ string arg = e.CommandArgument.ToString(); switch (e.CommandName) { case "UpdateProductName": break; case "UpdateProductCount": break; } WebDataGrid1.DataSrouce = ObjectDataSourceProduct; WebDataGrid1.DataBind();}
You can update your data source manually in the RowUpdating event - http://ko.infragistics.com/community/blogs/developer_support/archive/2012/02/03/webdatagrid-manual-crud.aspx. It will fire after postback, in case you have made any changes to the grid. And if you are using AutoCRUD, the grid will update the data source automatically.