看起来这应该是直截了当的,但我很难过。我的listview全部设置并绑定到我的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>

我需要在那里获得一个标签,该标签绑定到listview之外的数据绑定asp下拉列表的值,以便插入操作。

有帮助吗?

解决方案 2

我结束了这一切,谢谢twanfosson。

protected void ListView1_ItemInserting(object sender, System.Web.UI.WebControls.ListViewInsertEventArgs e)
        {
            e.Values["BranchID"] = DropDownList1.SelectedValue;
        }

其他提示

当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完成。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top