c# - FormView EditTemplate 如何更新 ObjectDataSource UpdateParameters 中的值?

标签 c# asp.net objectdatasource formview

我有一个绑定(bind)到 ObjectDataSource 的 FormView。

* ObjectDataSource 定义(为简单起见省略了部分)*

<asp:ObjectDataSource 
    ID="odsHousehold" 
    runat="server"
    TypeName="BLL.Households"
    ConflictDetection="OverwriteChanges"
    UpdateMethod="UpdateHousehold" 
    >
    <UpdateParameters>
        <asp:Parameter Name="sName" Type="String" Direction="Input" />
        <asp:Parameter Name="sAddress" Type="String" Direction="Input" DefaultValue="" />
        <asp:Parameter Name="sCity" Type="String" Direction="Input" DefaultValue="" />
        <asp:Parameter Name="sState" Type="String" Direction="Input" DefaultValue="" />
        <asp:Parameter Name="sZip" Type="String" Direction="Input" DefaultValue="" />
    </UpdateParameters>
</asp:ObjectDataSource>

* FormView 定义(为简单起见省略了部分)*

   <asp:FormView 
    ID="fvHousehold"
    runat="server"
    DataKeyNames="HouseholdID"
    DataSourceID="odsHousehold"
    HorizontalAlign = "Left"
 >
<EditItemTemplate>
<asp:TextBox ID="txtHouseHoldName" runat="server" MaxLength="50" Width="100%" Text='<%# Bind("HouseholdName") %>'></asp:TextBox>
<asp:TextBox ID="txtAddress" runat="server" MaxLength="50" Width="100%" Text='<%# Bind("Address") %>'></asp:TextBox>
<asp:TextBox ID="txtCity" runat="server" MaxLength="50" Width="100%" Text='<%# Bind("City") %>'></asp:TextBox>
<asp:TextBox ID="txtState" runat="server" MaxLength="50" Width="100%" Text='<%# Bind("State") %>'></asp:TextBox>
<asp:TextBox ID="txtZip" runat="server" MaxLength="50" Width="100%" Text='<%# Bind("Zip") %>'></asp:TextBox>
 <asp:Button ID="btnUpdateHousehold" runat="server" Text="Update" CommandName="Update" />
</EditItemTemplate>
</asp:FormView>

我想知道:单击“更新”按钮时,FormView 如何知道要使用哪个 EditTemplate TextBox 填充哪个 UpdateParameter?
例如,我没有指示“txtAddress” "在 FormView 中填充 UpdateParameter "sAddress"但 InputParameters["sAddress"] 包含 txtAddress 的文本值。它怎么知道要那样做?

有哪位大师可以开导一下吗?

非常感谢,

卡伦

最佳答案

“当单击更新按钮时,FormView 如何知道用哪个 EditTemplate TextBox 填充哪个 UpdateParameter?”

我相信简单的答案是:它知道是因为您在 TextBox 控件中放置了 Bind 语句。例如。 txtAddress 有 "Bind("Address")"所以当调用更新时,它在 txtAddress 和参数 "Address"之间有一个连接

关于c# - FormView EditTemplate 如何更新 ObjectDataSource UpdateParameters 中的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/764570/

相关文章:

c# - 带有 EnableSSL 的 FtpWebRequest

c# - 获取附加属性 "Canvas.Left"

c# - 无法加载文件或程序集 'System.Web.Optimization' 或其依赖项之一

c# - ObjectDataSource 没有找到 SelectCountMethod

c# - EF 6 是否支持 SQL Server 2014 类型?

c# - for循环中的前缀和后缀递增

c# - 带有 CosmosDBTrigger 的 Azure 函数似乎不是由 upsert 触发的

asp.net - 在编辑 View 中保留实体 key 的更安全方法?

asp.net - 如何捕获 ObjectDataSource.Updata() 的异常

c# - 如何在 FormView 中保存 CheckBoxList 中的项目?