C# 跨窗体视图字段更新

C# 跨窗体视图字段更新,c#,asp.net,sqldatasource,C#,Asp.net,Sqldatasource,我有一个ASP.NET页面(Ccodebehind),其中有两个FormView都绑定到相同的底层SQL表,但是SQLDataSource为表单提供的对象不同,因为我需要两个不同的UpdateCommand。 当我通过第二个表单的SQLDataSource来“更新”第二个表单时,问题就出现了,这种表单中的字段会更新,而第一个表单中的字段不会更新。我试图强制绑定到第一个表单的SQLDataSource对象使用Select()方法更新其数据,但没有成功。 在我更新第二个表单后,是否可以“强制”第一个

我有一个ASP.NET页面(
C
codebehind),其中有两个
FormView
都绑定到相同的底层
SQL
表,但是
SQLDataSource
为表单提供的对象不同,因为我需要两个不同的
UpdateCommand
。 当我通过第二个表单的
SQLDataSource
来“更新”第二个表单时,问题就出现了,这种表单中的字段会更新,而第一个表单中的字段不会更新。我试图强制绑定到第一个表单的
SQLDataSource
对象使用
Select()
方法更新其数据,但没有成功。 在我更新第二个表单后,是否可以“强制”第一个表单更新它自己的字段

ASP代码:

<asp:FormView
    ID="_fvData1"
    runat="server"
    DataKeyNames="id"
    DataSourceID="_sdsData1"
    DefaultMode="Edit" 
    Width="100%">
    <EditItemTemplate>
        <asp:TextBox 
            ClientIDMode="Static" 
            CausesValidation="true"
            ID="_txtData1" 
            runat="server" 
            Text='<%#Eval("data1","{0:dd/MM/yyyy}")%>' />
    </EditItemTemplate>
</asp:FormView>

<asp:FormView
    ID="_fvData2"
    runat="server"
    DataKeyNames="id"
    DataSourceID="_sdsData2"
    DefaultMode="Edit" 
    Width="100%">
    <EditItemTemplate>
        <asp:TextBox 
            ClientIDMode="Static" 
            CausesValidation="true"
            ID="_txtData1" 
            runat="server" 
            Text='<%#Eval("data1","{0:dd/MM/yyyy}")%>' />
    </EditItemTemplate>
</asp:FormView>

<asp:SqlDataSource 
    ID="_sdsData1" 
    runat="server"
    ConnectionString="<%$ ConnectionStrings:sos_db %>"
    ProviderName="<%$ ConnectionStrings:sos_db.ProviderName %>"
    SelectCommand=" SELECT
                         *                                            
                    FROM
                         table_a
                    WHERE
                         id=@id;"
     UpdateCommandType="StoredProcedure"
     UpdateCommand="update_table_a_procedure_a">
     <SelectParameters>
         <asp:QueryStringParameter Name="id" Type="Int32" QueryStringField="id" />
     </SelectParameters>
     <UpdateParameters>
         <asp:QueryStringParameter Name="id" Type="Int32" QueryStringField="id" />
     </UpdateParameters>
</asp:SqlDataSource>

<asp:SqlDataSource 
    ID="_sdsData2" 
    runat="server"
    ConnectionString="<%$ ConnectionStrings:sos_db %>"
    ProviderName="<%$ ConnectionStrings:sos_db.ProviderName %>"
    OnUpdated="_sdsData2_Updated"
    SelectCommand=" SELECT
                         *                                            
                    FROM
                         table_a
                    WHERE
                         id=@id;"
     UpdateCommandType="StoredProcedure"
     UpdateCommand="update_table_a_procedure_b">
     <SelectParameters>
         <asp:QueryStringParameter Name="id" Type="Int32" QueryStringField="id" />
     </SelectParameters>
     <UpdateParameters>
         <asp:QueryStringParameter Name="id" Type="Int32" QueryStringField="id" />
     </UpdateParameters>
</asp:SqlDataSource>

可以添加您在此处解释的图像吗?阅读和假设场景有点让人困惑。我当然可以。我将插入我正在使用的确切代码。
protected void _sdsData2_Updated(object sender, SqlDataSourceStatusEventArgs e)
{
    _sdsData1.Select(DataSourceSelectArguments.Empty);
}