更新LINQDatasource时获取错误
当我尝试更新绑定到网格视图的LINQ数据源时,出现以下错误: 在ViewState中存储的原始值中找不到与给定键匹配的行。确保“键”字典包含唯一的键值,这些键值对应于上一次选择操作返回的行 我已经在网格视图中指定了DataKeyName 以下是HTML:更新LINQDatasource时获取错误,linq,linq-to-sql,datasource,Linq,Linq To Sql,Datasource,当我尝试更新绑定到网格视图的LINQ数据源时,出现以下错误: 在ViewState中存储的原始值中找不到与给定键匹配的行。确保“键”字典包含唯一的键值,这些键值对应于上一次选择操作返回的行 我已经在网格视图中指定了DataKeyName 以下是HTML: <asp:GridView ID="TaskGridView" runat="server" AutoGenerateColumns="False" DataKeyNames="taskid,statusid,taskdescr
<asp:GridView ID="TaskGridView" runat="server" AutoGenerateColumns="False"
DataKeyNames="taskid,statusid,taskdescription" DataSourceID="GridDataSource"
onrowcreated="TaskGridView_RowCreated">
<Columns>
<asp:TemplateField HeaderText="taskid" InsertVisible="False"
SortExpression="taskid">
<ItemTemplate>
<asp:Label ID="TaskId" runat="server" Text='<%# Bind("taskid") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="taskdescription"
SortExpression="taskdescription">
<EditItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("taskdescription") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="TaskDesc" runat="server" Text='<%# Bind("taskdescription") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="url" HeaderText="url" SortExpression="url" />
<asp:TemplateField HeaderText="Status">
<ItemTemplate>
<asp:DropDownList runat="server" ID="ddStatus" DataSourceID="DropDownDataSource" DataValueField="statusid" SelectedValue="<%# Bind('Statusid') %>" DataTextField="statusdescription" ></asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:LinqDataSource ID="GridDataSource" runat="server"
ContextTypeName="DailyTask.DailyTaskDBDataContext" TableName="tbl_tasks"
EnableUpdate="True">
</asp:LinqDataSource>
<asp:Button ID="btnUpdate" runat="server" onclick="btnUpdate_Click"
Text="Update" />
<asp:LinqDataSource ID="DropDownDataSource" runat="server"
ContextTypeName="DailyTask.DailyTaskDBDataContext" TableName="tbl_status">
</asp:LinqDataSource>
我知道问题出在密码里了 我只需要在这里使用int.Parse,因为taskid是主键
keyValues.Add("taskid", int.Parse(((Label)TaskGridView.Rows[0].FindControl("TaskId")).Text));
如果您能够显示与此问题相关的代码/xaml,这将非常有帮助。kthx。
keyValues.Add("taskid", int.Parse(((Label)TaskGridView.Rows[0].FindControl("TaskId")).Text));