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