我有一个带有两个C#
的ASP.NET页面(FormView
codebehind),这两个SQL
两个绑定到相同的底层SQLDataSource
表,但UpdateCommand
个对象提供表单是不同的,因为我需要两个不同的SQLDataSource
。
当我通过它SQLDataSource
“更新”第二种形式时会出现问题,这种形式的字段会更新,而第一种形式的字段则不会。我试图强制绑定到第一个表单的Select()
对象用<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>
方法更新它的数据,但没有运气。
在我更新第二个表单后,是否可以“强制”第一个表单来更新它自己的字段?
ASP代码:
protected void _sdsData2_Updated(object sender, SqlDataSourceStatusEventArgs e)
{
_sdsData1.Select(DataSourceSelectArguments.Empty);
}
代码隐藏:
grep -B6 -A1 'CE1([28]\|CE2([-1-17]-[28]' file