带有 Sqldatasource Edit/Delete 按钮的 Gridview
Gridview with Sqldatasource Edit/Delete buttons
我正在使用 asp.net,后面有 c# 代码,我想要做的就是有一个 gridview+sqldatasource,我可以在运行时操作它,无论出于什么原因按钮不起作用。我有一个登录页面,通过查询字符串传递用户名,然后这个页面现在只是一个 gridview。当我单击删除按钮时,它立即将我带到字段再次空白的登录页面。出于测试目的,我只使用删除按钮,但我对编辑按钮也有同样的体验,它从来没有像它应该的那样 "update mode"。
<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>
网络配置:
<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>
此处不需要定义Delete参数,因为设置OldValuesParameterFormatString="original_{0}"
,@original_ID
参数将由数据控件自动提交。
因此参数 @original_ID
将具有适当的 ID 值。
<asp:Parameter ... />
声明仅在您想以编程方式设置参数时使用。
想通了。我没有为 editing/updating/deleting.
正确定义点击事件
我正在使用 asp.net,后面有 c# 代码,我想要做的就是有一个 gridview+sqldatasource,我可以在运行时操作它,无论出于什么原因按钮不起作用。我有一个登录页面,通过查询字符串传递用户名,然后这个页面现在只是一个 gridview。当我单击删除按钮时,它立即将我带到字段再次空白的登录页面。出于测试目的,我只使用删除按钮,但我对编辑按钮也有同样的体验,它从来没有像它应该的那样 "update mode"。
<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>
网络配置:
<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>
此处不需要定义Delete参数,因为设置OldValuesParameterFormatString="original_{0}"
,@original_ID
参数将由数据控件自动提交。
因此参数 @original_ID
将具有适当的 ID 值。
<asp:Parameter ... />
声明仅在您想以编程方式设置参数时使用。
想通了。我没有为 editing/updating/deleting.
正确定义点击事件