2013-08-22 91 views
1

我想允许编辑GridView中的项目(数据源是数据库连接)。我发现每个例子都有复杂的例子。我想知道我需要做的最简单的更改是为了允许编辑GridView中的项目。可编辑的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

什么是数据源SQL或对象?看到这个链接它可能是有用的http://msdn.microsoft.com/en-us/library/ms972948.aspx – Bit

+0

这是一个SQLDataSource。我会检查这一点,谢谢! – muttley91

回答

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个字段,但只允许两个要被更新(meetingdate和meetingtime)。

+0

您是否可以在UpdateParameters上详细说明一下?它将如何知道我正在使用哪个字段以及如何在查询中使用参数? – muttley91

+0

@rar您的参数名称将是您正在更新的数据库字段的名称。我已经添加了一个简单的示例来回答更新时数据源的外观。 –

0

要编辑记录,GridView必须输入EditMode。网格根据它接收的命令改变模式,在这种情况下是“编辑”。请参阅gridview page“数据操作”部分的备注以获取更多信息。

基本上有三种方式来触发命令和对电网进入编辑模式:

  1. 使用AutoGenerateEditButton特性对电网
  2. 使用CommandField与ShowEditButton像对方回答说
  3. 使用自定义TemplateFieldLinkButton里面是这样的:

<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”

+0

它会是一个SQLDataSource。 – muttley91