LINQ Datasource挿入テンプレートを使用した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>
挿入が機能するように、リストビューの外部のデータバインドされたASPドロップダウンリストの値にバインドするラベルをそこに取得する必要があります。
解決 2
私はこれで終わりました、ありがとうtwanfosson。
protected void ListView1_ItemInserting(object sender, System.Web.UI.WebControls.ListViewInsertEventArgs e)
{
e.Values["BranchID"] = DropDownList1.SelectedValue;
}
他のヒント
DropDownListのOnSelectedIndexChanged(AutoPostBack = Trueを使用)コールバックを使用して、DropDownListの値が変更されたときにListViewの値をそのブランチのデフォルトに手動で設定します。
protected void BranchDropDownList_OnSelectedIndexChanged( object sender, EventArgs e )
{
DropDownList ddl = (DropDownList)sender;
RechargeRateTextBox.Text = BranchManager.GetRechargeRate( ddl.SelectedValue );
}
すべてをUpdatePanelでラップすると、すべてAJAXを介して実行できます。
所属していません StackOverflow