1

我正在编写一个带有GridView. 我的删除命令正常工作;但是,更新命令无法正常工作。我真的很想远离为这种情况创建模板字段,因为我将在同一页面上有大约 5 个不同的 GridView。

这是我的标记代码。

<asp:GridView ID="GridView1" runat="server" 
      DataSourceID="DataSource" AutoGenerateColumns="False" 
      DataKeyNames="ID" >
    <Columns>
      <asp:CommandField ShowDeleteButton="True" ShowEditButton="True" />
      <asp:BoundField DataField="ID" HeaderText="ID" ReadOnly="true" />
      <asp:BoundField DataField="Name" HeaderText="Name" />
      <asp:BoundField DataField="DefaultValue" HeaderText="DefaultValue" />
    </Columns>
</asp:GridView>
<asp:SqlDataSource ID="DataSource" runat="server" 
    ConnectionString="<%$ ConnectionStrings:MyApp.Web_App.Properties.Settings.DB %>" 
      SelectCommand="SELECT [ID], [Name], [DefaultValue] FROM [MyTable] WHERE ([MyID] = @MyID)" 
      DeleteCommand="DELETE FROM dbo.MyTable WHERE (ID = @ID)"
      UpdateCommand="UPDATE dbo.MyTable SET Name = @Name, DefaultValue = @DefaultValue WHERE (ID = @ID)" >

    <SelectParameters>
        <asp:SessionParameter Name="MyID" SessionField="My_ID" Type="Int32" />
    </SelectParameters>
    <UpdateParameters>
      <asp:Parameter Name="ADRoleToAttributeDefaultID" Type="Int32" />
      <asp:Parameter Name="ADAttrName" Type="String" />
      <asp:Parameter Name="ADAttrDefaultValue" Type="String" />
    </UpdateParameters>
</asp:SqlDataSource>

该表填充了数据,我可以对表执行删除操作。我只是不确定为什么更新不起作用。

编辑 1

我添加了建议的标记,但这仍然不起作用。我想如何设置参数?

4

1 回答 1

2

在 SelectParameters 之后添加 UpdateParameters:

<SelectParameters>
    <asp:SessionParameter Name="MyID" SessionField="My_ID" Type="Int32" />
</SelectParameters>

<UpdateParameters>
        <asp:Parameter Name="ID" Type="Int32" />
        <asp:Parameter Name="Name" Type="String" />
        <asp:Parameter Name="DefaultValue" Type="String" />
 </UpdateParameters>
于 2013-08-13T16:21:45.253 回答