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 の 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 経由で実行できます。

于 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 に答える