1

看起来这应该很简单,但我令人难以置信。我已经设置好我的列表视图并绑定到我的 LINQ 数据源。源取决于一个下拉列表,该下拉列表决定在列表视图中显示哪些分支信息。我的编辑模板工作正常,但我的插入模板不起作用,因为它需要我想从列表视图外部的下拉列表中获取的分支 ID,但我不知道如何绑定该值并将其设置在我的模板中。它看起来像这样:

<InsertItemTemplate>
    <tr style="">
      <td>
         <asp:Button ID="InsertButton" runat="server" CommandName="Insert" 
               Text="Insert" />
     </td>
      <td>
       <asp:TextBox ID="RechargeRateTextBox" runat="server" 
          Text='<%# Bind("RechargeRate") %>' />
         </td>
              <td>
       <asp:Calendar SelectedDate='<%# Bind("StartDate") %>' ID="Calendar1"  runat="server"></asp:Calendar>                                    
       </td>
           </tr>
    </InsertItemTemplate>

我需要在其中获取一个标签,该标签绑定到列表视图之外的数据绑定 asp 下拉列表的值,以便插入工作。

4

2 回答 2

4

当 DropDownList 的值更改时,使用 DropDownList 的 OnSelectedIndexChanged(使用 AutoPostBack=True)回调将 ListView 中的值手动设置为该分支的默认值。

protected void BranchDropDownList_OnSelectedIndexChanged( object sender, EventArgs e )
{
    DropDownList ddl = (DropDownList)sender;
    RechargeRateTextBox.Text = BranchManager.GetRechargeRate( ddl.SelectedValue );
}

将整个事情包装在一个 UpdatePanel 中,这一切都可以通过 AJAX 发生。

于 2008-10-17T14:19:22.957 回答
1

我最终选择了这个,谢谢 twanfosson。

protected void ListView1_ItemInserting(object sender, System.Web.UI.WebControls.ListViewInsertEventArgs e)
        {
            e.Values["BranchID"] = DropDownList1.SelectedValue;
        }
于 2008-10-17T14:41:54.720 回答