我创建了一个Web应用程序并包含一个GridView,它将从表testtable
中检索记录。
代码如下:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
DataSourceID="SqlDataSource1">
<Columns>
<asp:CommandField ShowDeleteButton="True" ShowEditButton="True" />
<asp:BoundField DataField="product_no" HeaderText="product_no"
InsertVisible="False" ReadOnly="True" SortExpression="product_no" />
<asp:BoundField DataField="product_name" HeaderText="product_name"
SortExpression="product_name" />
<asp:BoundField DataField="price" HeaderText="price" SortExpression="price" />
<asp:BoundField DataField="expire_date" HeaderText="expire_date"
SortExpression="expire_date" />
<asp:BoundField DataField="expire_time" HeaderText="expire_time"
SortExpression="expire_time" />
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:testbaseConnectionString %>"
DeleteCommand="DELETE FROM testtable WHERE (product_no = @product_no)"
InsertCommand="INSERT INTO testtable(product_name, price, expire_date, expire_time) VALUES (@product_name, @price, @expire_date, @expire_time)"
SelectCommand="SELECT testtable.* FROM testtable"
UpdateCommand="UPDATE testtable SET product_name = @product_name, price = @price, expire_date = @expire_date, expire_time = @expire_time WHERE (product_no = @product_no)">
<DeleteParameters>
<asp:Parameter Name="product_no" />
</DeleteParameters>
<InsertParameters>
<asp:Parameter Name="product_name" />
</InsertParameters>
<UpdateParameters>
<asp:Parameter Name="product_name" />
<asp:Parameter Name="price" />
<asp:Parameter Name="expire_date" />
<asp:Parameter Name="expire_time" />
<asp:Parameter Name="product_no" />
</UpdateParameters>
</asp:SqlDataSource>
但是,当我单击GridView的特定记录的Edit
链接并进行一些更改时,我单击Update
链接但是没有反映更改,似乎它没有更新进入表格。 (Edit
链接看起来与下图中的显示完全相同)
我能错过什么?
答案 0 :(得分:0)
查看这些链接希望它可以帮助您
答案 1 :(得分:0)
GridView控件中没有“DataKeyNames”。
修改gridView标记,如下所示:
<asp:GridView DataKeyNames="product_no" ... />
答案 2 :(得分:0)
尝试更改这两个
<asp:BoundField DataField="product_no" HeaderText="product_no"
InsertVisible="False" ReadOnly="True" SortExpression="product_no" />
<asp:BoundField DataField="product_name" HeaderText="product_name"
SortExpression="product_name" />
用这个
<asp:TemplateField HeaderText="product_name" SortExpression="product_name">
<ItemTemplate>
<asp:HiddenField id="hfProduct_No" runat="server" value='<%# Bind("product_no") %>' />
<asp:Label id="lblProduct_name" runat="server" Text ='<%#Bind("product_name")%>' ></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:HiddenField id="hfProduct_No" runat="server" value='<%# Bind("product_no") %>' />
<asp:TextBox id="txtProduct_name" runat="server" Text ='<%#Bind("product_name")%>' ></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>