2013-04-13 31 views
0

我一直在我有一個頁面上的更新命令的問題。我有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> 
+3

顯示您的代碼。 –

+0

@SonerGönül我添加了detailsview的代碼,因爲您可以看到它們完全相同 –

+0

代碼 –

回答

0

經過數週的研究我決定從我的頁面中刪除所有的ajax,並且更新開始精美地工作。顯然,一些代碼與頁面上的更新命令衝突。

我已經研究了幾個星期的問題,多次閱讀數據源但沒有成功。我的最後一個資源是從頁面中刪除所有的ajax,並且魔術般地一切正常。