我一直在我有一個頁面上的更新命令的問題。我有4個gridviews和4個detailsviews,他們都不會更新與更新命令。我可以插入和刪除但更新不起作用。更新按鈕不會導致回發,它只是坐在那裏。更新命令不能在特定頁面上工作
我創建了一個新頁面並添加了一個detailsview並將其連接到同一個數據庫和同一個表,並且在該頁面中update命令完美工作。我甚至將命令查詢複製並粘貼到其他頁面上的詳細信息視圖,但沒有成功。
我在想這是按鈕的問題,但爲什麼默認更新鏈接按鈕不起作用?
我使用ASP.NET,C#和SQL Server 2008
我也注意到,在該工程顯示了DetailsView控件更新按鈕:在狀態欄上javascript:__doPostBack('DetailsView1$ctl02','')
。
但對於一個不工作顯示了該更新按鈕:WebForm_PostBackOptions("ctl00$ContentPlaceHolder1$DetailsView2$ctl02", "", true, "", "", false, true))
下面是在DetailsView的作品
<asp:DetailsView ID="DetailsView1" runat="server" AutoGenerateRows="False"
DataKeyNames="WorkshopName,WorkshopBeginingDate,WorkshopLocation"
DataSourceID="SqlDataSource1" Height="50px" Width="125px">
<Fields>
<asp:BoundField DataField="WorkshopName" HeaderText="WorkshopName"
ReadOnly="True" SortExpression="WorkshopName" />
<asp:BoundField DataField="WorkshopBeginingDate"
HeaderText="WorkshopBeginingDate" ReadOnly="True"
SortExpression="WorkshopBeginingDate" />
<asp:BoundField DataField="WorkshopEndingDate" HeaderText="WorkshopEndingDate"
SortExpression="WorkshopEndingDate" />
<asp:BoundField DataField="WorkshopLocation" HeaderText="WorkshopLocation"
ReadOnly="True" SortExpression="WorkshopLocation" />
<asp:CommandField ShowEditButton="True" />
</Fields>
</asp:DetailsView>
這是一個沒有按代碼的代碼't work
<asp:DetailsView ID="DetailsView2" runat="server" AutoGenerateRows="False"
DataKeyNames="WorkshopName,WorkshopBeginingDate,WorkshopLocation"
DataSourceID="SqlDataSource20" Height="50px" Width="125px">
<Fields>
<asp:BoundField DataField="WorkshopName" HeaderText="WorkshopName"
ReadOnly="True" SortExpression="WorkshopName" />
<asp:BoundField DataField="WorkshopBeginingDate"
HeaderText="WorkshopBeginingDate" ReadOnly="True"
SortExpression="WorkshopBeginingDate" />
<asp:BoundField DataField="WorkshopEndingDate" HeaderText="WorkshopEndingDate"
SortExpression="WorkshopEndingDate" />
<asp:BoundField DataField="WorkshopLocation" HeaderText="WorkshopLocation"
ReadOnly="True" SortExpression="WorkshopLocation" />
<asp:CommandField ShowEditButton="True" />
</Fields>
</asp:DetailsView>
**This is the SQL Data source code for the one that doesn't work, it is also the same on the one that works, except for the Datasource ID.**
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConflictDetection="CompareAllValues"
ConnectionString="<%$ ConnectionStrings:WildLife_EducationConnectionString %>"
DeleteCommand="DELETE FROM [tblWorkshop] WHERE [WorkshopName] = @original_WorkshopName AND [WorkshopBeginingDate] = @original_WorkshopBeginingDate AND [WorkshopLocation] = @original_WorkshopLocation AND (([WorkshopEndingDate] = @original_WorkshopEndingDate) OR ([WorkshopEndingDate] IS NULL AND @original_WorkshopEndingDate IS NULL))"
InsertCommand="INSERT INTO [tblWorkshop] ([WorkshopName], [WorkshopBeginingDate], [WorkshopEndingDate], [WorkshopLocation]) VALUES (@WorkshopName, @WorkshopBeginingDate, @WorkshopEndingDate, @WorkshopLocation)"
OldValuesParameterFormatString="original_{0}"
SelectCommand="SELECT [WorkshopName], [WorkshopBeginingDate], [WorkshopEndingDate], [WorkshopLocation] FROM [tblWorkshop]"
UpdateCommand="UPDATE [tblWorkshop] SET [WorkshopEndingDate] = @WorkshopEndingDate WHERE [WorkshopName] = @original_WorkshopName AND [WorkshopBeginingDate] = @original_WorkshopBeginingDate AND [WorkshopLocation] = @original_WorkshopLocation AND (([WorkshopEndingDate] = @original_WorkshopEndingDate) OR ([WorkshopEndingDate] IS NULL AND @original_WorkshopEndingDate IS NULL))">
<DeleteParameters>
<asp:Parameter Name="original_WorkshopName" Type="String" />
<asp:Parameter DbType="Date" Name="original_WorkshopBeginingDate" />
<asp:Parameter Name="original_WorkshopLocation" Type="String" />
<asp:Parameter DbType="Date" Name="original_WorkshopEndingDate" />
</DeleteParameters>
<InsertParameters>
<asp:Parameter Name="WorkshopName" Type="String" />
<asp:Parameter DbType="Date" Name="WorkshopBeginingDate" />
<asp:Parameter DbType="Date" Name="WorkshopEndingDate" />
<asp:Parameter Name="WorkshopLocation" Type="String" />
</InsertParameters>
<UpdateParameters>
<asp:Parameter DbType="Date" Name="WorkshopEndingDate" />
<asp:Parameter Name="original_WorkshopName" Type="String" />
<asp:Parameter DbType="Date" Name="original_WorkshopBeginingDate" />
<asp:Parameter Name="original_WorkshopLocation" Type="String" />
<asp:Parameter DbType="Date" Name="original_WorkshopEndingDate" />
</UpdateParameters>
</asp:SqlDataSource>
顯示您的代碼。 –
@SonerGönül我添加了detailsview的代碼,因爲您可以看到它們完全相同 –
代碼 –