ListView com molde de inserção LINQ fonte de dados
Pergunta
Parece que isso deve ser simples, mas eu estou incompreensível. Eu tenho o meu listview toda a configuração e obrigado à minha LINQ fonte de dados. A fonte é dependente de uma lista suspensa que decide qual a informação ramo para mostrar na listview. Meu modelo de edição funciona bem, mas o meu modelo de inserção não funcionará porque ele quer o ID ramo que eu quero começar a partir do dropdownlist fora do listview, mas eu não sei como ambos se ligam esse valor e colocá-lo em meu modelo. Parece que este:
<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>
Eu preciso para obter uma etiqueta lá que se liga ao valor de um dropdownlist fora databound asp do listview para que a inserção irá funcionar.
Solução 2
Eu acabei indo com isso, graças twanfosson.
protected void ListView1_ItemInserting(object sender, System.Web.UI.WebControls.ListViewInsertEventArgs e)
{
e.Values["BranchID"] = DropDownList1.SelectedValue;
}
Outras dicas
Use o OnSelectedIndexChanged (com AutoPostBack = true) callback para o DropDownList para definir manualmente os valores na ListView para os padrões para esse ramo quando o valor das mudanças DROPDOWNLIST.
protected void BranchDropDownList_OnSelectedIndexChanged( object sender, EventArgs e )
{
DropDownList ddl = (DropDownList)sender;
RechargeRateTextBox.Text = BranchManager.GetRechargeRate( ddl.SelectedValue );
}
Enrole a coisa toda em um UpdatePanel e tudo pode acontecer via AJAX.