Gridview with Sqldatasource编辑/删除按钮

时间:2015-05-18 21:27:12

标签: c# asp.net gridview sqldatasource

我正在使用带有c#代码的asp.net,而我想做的就是有一个gridview + sqldatasource,我可以在运行时操作,无论出于什么原因按钮都不起作用。我有一个登录页面,通过查询字符串传递用户名,然后此页面现在只是一个gridview。当我单击删除按钮时,它立即将我带到登录页面,字段再次为空白。出于测试目的,我只使用删除按钮,但我也有与编辑按钮相同的体验,它从未进行过"更新模式"似乎应该这样。

        <asp:GridView DataKeyNames="ID" ID="GridView1" runat="server" DataSourceID="SqlDataSource1" AllowPaging="True" AllowSorting="True" PageSize="8" OnRowDataBound="GridView1_RowDataBound">
            <Columns>
                <asp:CommandField ShowDeleteButton="True" />
            </Columns>
        </asp:GridView>
        <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString='<%$ ConnectionStrings:WebMasterLogConnectionString2 %>'
            SelectCommand="SELECT * FROM [WebmasterLogs] WHERE ([Username] = @Username) ORDER BY [ID]"
            ConflictDetection="CompareAllValues" 
            DeleteCommand="DELETE FROM [WebmasterLogs] WHERE [ID] = @original_ID" 
            OldValuesParameterFormatString="original_{0}" >
            <DeleteParameters>
                <asp:Parameter Name="original_ID" Type="Int32" />
            </DeleteParameters>
            <SelectParameters>
                <asp:Parameter Name="ID" Type="Int32" />
                <asp:QueryStringParameter Name="Username" QueryStringField="Username" Type="String" />
                <asp:Parameter Name="LogEntryDate" Type="DateTime" />
                <asp:Parameter Name="TimeSpent" Type="String" />
                <asp:Parameter Name="Description" Type="String" />
            </SelectParameters>
        </asp:SqlDataSource>

Web配置:

<configuration>
  <configSections>
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
  </configSections>
  <system.web>
    <compilation debug="true" targetFramework="4.5" />
    <httpRuntime targetFramework="4.5" />
  </system.web>
  <appSettings>
    <add key="ValidationSettings:UnobtrusiveValidationMode" value="None" />
  </appSettings>
  <connectionStrings>
    <add name="WebMasterLogConnectionString" connectionString="Data Source=35sql;Initial Catalog=WebMasterLog;Persist Security Info=False;User ID=*****;Password=*********"
      providerName="System.Data.SqlClient" />
  </connectionStrings>
</configuration>

2 个答案:

答案 0 :(得分:2)

此处无需定义Delete参数,因为@original_ID参数将由数据控件自动提交,因为设置为OldValuesParameterFormatString="original_{0}"

因此参数@original_ID已经具有适当的ID值。


仅当您要以编程方式设置参数时才使用<asp:Parameter ... />声明。

答案 1 :(得分:0)

想出来了。我没有正确定义点击事件以进行编辑/更新/删除。