我正在尝试允许编辑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。答案 0 :(得分: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 Developer Network Documentation
修改强>
这是一个非常简单的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个字段,但只允许更新两个字段(会议日期和会议时间)。
答案 1 :(得分:0)
要编辑记录,GridView必须输入EditMode。网格根据它接收的命令改变模式,在这种情况下是“编辑”。有关详细信息,请参阅gridview page,“数据操作”部分的备注。
基本上有三种方法可以触发命令并在网格上进入编辑模式:
<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>
<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”