0

私が持っているページの更新コマンドに問題がありました。4 つのグリッドビューと 4 つの詳細ビューがありますが、更新コマンドで更新されるものはありません。挿入と削除はできますが、更新は機能しません。更新ボタンはポストバックを引き起こしません。ただそこに座っています。

新しいページを作成し、詳細ビューを追加して、同じデータベースと同じテーブルに接続しました。そのページでは、更新コマンドが完全に機能しました。コマンドクエリを他のページの詳細ビューにコピーして貼り付けましたが、成功しませんでした。

ボタンの問題だと思いますが、デフォルトの更新リンク ボタンが機能しないのはなぜですか?

ASP.NET、C#、および SQL Server 2008 を使用しています。

javascript:__doPostBack('DetailsView1$ctl02','')機能する詳細ビューの更新ボタンがステータスバーに表示されることに気付きました。

しかし、機能しないボタンの更新ボタンには次のように表示されます。WebForm_PostBackOptions("ctl00$ContentPlaceHolder1$DetailsView2$ctl02", "", true, "", "", false, true))

動作する詳細ビューのコードは次のとおりです

<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>

これは動作しないコードです

   <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>
4

1 に答える 1

0

数週間の調査の後、ページからすべての ajax を削除することに決め、更新がうまく機能し始めました。どうやら一部のコードがページの更新コマンドと競合していたようです。

この問題を数週間調査し、データソースを何度も再読み込みしましたが、成功しませんでした。私の最後のリソースは、ページからすべての ajax を削除することで、魔法のようにすべてが機能しました。

于 2013-04-15T10:00:53.940 に答える