0

2 つのドロップダウン ボックスと 2 つのテキスト ボックスに、4 つの列があるリピーター コントロールの値をバインドする必要があります。

私の要件は、その選択に応じて最初の列で最初のドロップダウンを選択したとき、バランスのとれた 3 つの列が同じ行のリピーターでバインドされる必要があることです。

例えば

First column DropDownで、 を選択すると、リピーターの同じ行にあるEmployeeName次の3 列 (AGE、NO、ADDRESS)が自動的に入力されます。

 protected void ddlEmployee_SelectedIndexChanged(object sender, EventArgs e)
{
    using (EHSIMSDataContext db = new EHSIMSDataContext(EHSIMSConnectionString.GetConnectionString()))
    {
    (((sender as DropDownList).Parent).FindControl("email") as TextBox).Text =  ;
    (((sender as DropDownList).Parent).FindControl("Depart") as TextBox).Text = "Age";

    }
}

リピーター制御

 protected void rptactions_ItemDataBound(object sender, RepeaterItemEventArgs e)
{

        DropDownList ddlemployee = e.Item.FindControl("ddlemployee") as DropDownList;
      using (EHSIMSDataContext db = new EHSIMSDataContext(EHSIMSConnectionString.GetConnectionString()))
        {
            List<EMPLOYEE> objlistemp = (from ct in db.EMPLOYEEs
                                         orderby ct.FIRSTNAME
                                         select ct).ToList<EMPLOYEE>();
            ddlemployee.Items.Clear();
            ddlemployee.Items.Add(new ListItem("--SELECT--", ""));
            foreach (EMPLOYEE emp in objlistemp)
            {
                ddlemployee.Items.Add(new ListItem(emp.FIRSTNAME, emp.EMPLOYEE_ID.ToString()));
            }


    }
4

1 に答える 1

0

これが、あなたが言及したシナリオの方法です..

protected void ddlEmployee_SelectedIndexChanged(object sender, EventArgs e)
{
    (((sender as DropDownList).Parent).FindControl("txtAge") as TextBox).Text = "Age";
}

同様に、他のコントロールも見つけることができます...

OnSelectedIndex注: aspx ファイルでは、Repeater のこの DropDownList コントロールに変更されたイベントを追加する必要があり、そのAutoPostBackプロパティを に設定する必要もあります。True

アップデート:

モデルクラスが次のようになっている場合

class Employee
{
     public int ID {get; set};
     public int Age {get; set};
     public string Name {get; set};
     public string Address {get; set};
}

オブジェクトlstEmployees(タイプ) に従業員のリストがある場合、次のクエリを使用して、 の を持つList<Employee>従業員の名前を取得できます。IDemployeeID

lstEmployees.Find(e => e.ID == employeeId).Name

もちろん、プロパティを読み取ろうとする前に、常にあらゆる種類の null チェックを実行する必要があります。そうしNullReferenceExceptionないと、一致が見つからない場合に発生する可能性があります。

于 2013-07-28T09:53:49.597 に答える