1

我试图允许编辑 GridView 中的项目(DataSource 是数据库连接)。我发现的每个示例都在其中实现了复杂的示例。我想知道我需要做的最简单的更改是为了允许编辑 GridView 中的项目。

换句话说,如何修改以下内容以允许编辑?

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSourceWS">
        <Columns>
            <asp:CommandField ShowSelectButton="True" />
            <asp:BoundField DataField="id" HeaderText="id" InsertVisible="False" ReadOnly="True" SortExpression="id" />
            <asp:BoundField DataField="NAME" HeaderText="NAME" SortExpression="NAME" />
            <asp:BoundField DataField="ACCESS_TO" HeaderText="ACCESS_TO" SortExpression="ACCESS_TO" />
        </Columns>
    </asp:GridView>

显然我还需要添加代码,但我只是不确定如何开始。

编辑:我以为我已经指定了,但我没有 - 它是一个 SQLDataSource。

4

2 回答 2

0

您需要做几件事才能启用编辑

假设您的数据源是 SQLDataSource

1)将命令字段添加到您的 girdview 列

<asp:CommandField ButtonType="Button" EditText="Edit" ShowEditButton="true"/>

2)将更新命令添加到您的数据源

<asp:SqlDataSource ID="SqlDataSourceWS" runat="server" 
    ConnectionString="<%$ Connection String %>" 

    SelectCommand="  SELECT COMMAND HERE " 
    UpdateCommand="  UPDATE COMMAND HERE ">
    <UpdateParameters>
        <asp:Parameter Name="" />
        <asp:Parameter Name="" />
    </UpdateParameters>
</asp:SqlDataSource>

有关命令字段以及如何使用它的更多信息,您可以查看 Microsoft 开发人员网络文档

编辑

这是一个非常简单的 SQLDatasource 示例,它显示了如何更新项目

   <asp:SqlDataSource ID="sqlMeetings" runat="server" 
            ConnectionString="<%$ connection %>" 

            SelectCommand="SELECT  [meetingid]
                              ,[groupname]
                              ,[meetingtime]
                              ,[meetingdate]
                          FROM [DCMS].[dbo].[tbl_meetings] " 
            UpdateCommand="UPDATE tbl_meetings 
                           SET meetingdate = @meetingdate, meetingtime = @meetingtime 
                            WHERE meetingid = @meetingid">
            <UpdateParameters>
                <asp:Parameter Name="meetingdate" />
                <asp:Parameter Name="meetingtime" />
            </UpdateParameters>
        </asp:SqlDataSource>

从上面的示例中,您可以看到我从数据库中选择了 3 个字段,但只允许更新两个字段(会议日期和会议时间)。

于 2013-08-22T19:26:12.737 回答
0

要编辑记录,GridView 必须进入 EditMode。网格根据接收到的命令更改模式,在本例中为“编辑”。有关更多信息,请参阅gridview 页面“数据操作”部分的备注。

基本上有三种方法可以触发命令并在网格上进入编辑模式:

  1. 在网格上使用AutoGenerateEditButton属性
  2. 使用带有 ShowEditButton 的CommandField,就像其他答案所述
  3. 使用带有LinkBut​​ton的自定义TemplateField ,如下所示:

<Columns>
...
    <asp:TemplateField>
        <ItemTemplate>
            <asp:LinkButton runat="server" Text="Edit" CommandName="Edit" />
        </ItemTemplate>
        <EditItemTemplate>
            <asp:LinkButton runat="server" Text="Update" CommandName="Update" />
            <asp:LinkButton runat="server" Text="Cancel" CommandName="Cancel" />
        </EditItemTemplate>
    </asp:TemplateField>
...
</Columns>

之后,这将取决于您使用的 DataSource 控件。例如,使用EntityDataSource,您需要做的就是设置EnableUpdate ="true"

于 2013-08-22T19:52:46.207 回答