我使用SQL Server 2008 R2的快递,C#ASP.NET 4空行/删除
我有SQL服务器上的表与此T-SQL(包括数据)创建的:
CREATE DATABASE [someDatabase]
GO
USE [someDatabase]
CREATE TABLE someTable (someCode [int] NOT NULL IDENTITY(1,1) PRIMARY KEY, someDescription [nvarchar](50) NULL);
INSERT INTO [dbo].[someTable] (someDescription) VALUES (''),('row 2, 1st non empty line'),('3'),(''),('5th row');
SELECT * FROM [dbo].[someTable]
我也有含有一个gridview用的ConnectionString上述表Default.aspx文件,包括编辑和删除选项(模板) - 无代码后面:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
DataKeyNames="someCode" DataSourceID="SqlDataSource1">
<Columns>
<asp:CommandField ShowDeleteButton="True" ShowEditButton="True" />
<asp:BoundField DataField="someCode" HeaderText="someCode"
InsertVisible="False" ReadOnly="True" SortExpression="someCode" />
<asp:BoundField DataField="someDescription" HeaderText="someDescription"
SortExpression="someDescription" />
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConflictDetection="CompareAllValues"
ConnectionString="<%$ ConnectionStrings:someDatabaseConnectionString %>"
DeleteCommand="DELETE FROM [someTable] WHERE [someCode] = @original_someCode AND (([someDescription] = @original_someDescription) OR ([someDescription] IS NULL AND @original_someDescription IS NULL))"
InsertCommand="INSERT INTO [someTable] ([someDescription]) VALUES (@someDescription)"
OldValuesParameterFormatString="original_{0}"
SelectCommand="SELECT * FROM [someTable]"
UpdateCommand="UPDATE [someTable] SET [someDescription] = @someDescription WHERE [someCode] = @original_someCode AND (([someDescription] = @original_someDescription) OR ([someDescription] IS NULL AND @original_someDescription IS NULL))">
<DeleteParameters>
<asp:Parameter Name="original_someCode" Type="Int32" />
<asp:Parameter Name="original_someDescription" Type="String" />
</DeleteParameters>
<InsertParameters>
<asp:Parameter Name="someDescription" Type="String" />
</InsertParameters>
<UpdateParameters>
<asp:Parameter Name="someDescription" Type="String" />
<asp:Parameter Name="original_someCode" Type="Int32" />
<asp:Parameter Name="original_someDescription" Type="String" />
</UpdateParameters>
</asp:SqlDataSource>
它看起来像GridView很好地绑定了数据库的表。不过,我在使用乐观并发时遇到了问题。然后,我既不能删除没有描述的行,也不能在编辑模式下更新这些行。
GridView在浏览器(IE9,Chrome 18)中看起来很好,但是当我尝试删除没有描述的行时,它不起作用。当我点击其中一个无描述行的编辑时,我有机会输入一个新值,但是,当我单击更新没有任何反应时。
没有问题编辑/删除填充了someDescription的行。当不是使用乐观并发编辑和删除工作也为空描述。
GridView出现故障是否正常?有没有解决方法?
在GridView模板处于编辑或删除行模式时,是否可以访问GridView模板的验证工具?
应该没有代码工作落后。事实上,它不是在使用乐观并发模式。为什么在不使用乐观并发时一切正常?或者真正的问题,为什么GridView在这种模式下功能不全?请记住,在someDescription字段中存在一些文本的情况下,编辑/删除将以此模式运行。 – Different111222 2012-04-20 08:43:31