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();}
Hi Su Min,
You should make sure that the grid's data source is set every time the page loads. Also you could try setting EnableDataViewState and EnableViewState to true.
Let me know if this helps.
Hello Nikolay,
Thank you, I solved my problem with set data source every time the page loads.protected void Page_Load(object sender, EventArgs e){ GetData();}
I have another problem.
How can I change data after user modified? Or can I change objectdatasource.UpdateMethod at running-time?
For example, when I type Book, I want change Book to MyBook.