看起来这应该是直截了当的,但我很难过。我的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下拉列表的值,以便插入操作。
答案 0 :(得分: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完成。
答案 1 :(得分:1)
我结束了这一切,谢谢twanfosson。
protected void ListView1_ItemInserting(object sender, System.Web.UI.WebControls.ListViewInsertEventArgs e)
{
e.Values["BranchID"] = DropDownList1.SelectedValue;
}