在转发器中绑定值,关于转发器中第一列的选择

时间:2013-07-28 09:33:54

标签: c# asp.net

我需要在转发器控件中绑定我有4列的值,在2个下拉列表和2个文本框中。

我的要求是当我根据选择选择第一列中的第一个下拉列表时,余额3列应该在同一行的转发器中获得Bind。

,例如

在第一栏 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()));
            }


    }

1 个答案:

答案 0 :(得分:0)

这是您提到的方案的一种方式..

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

同样,您也可以找到其他控件......

注意:在aspx文件中,您需要将OnSelectedIndex已更改事件添加到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>)中有员工列表,则可以检索ID使用employeeID的员工姓名以下查询

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

当然,在尝试读取属性之前,您始终需要执行所有类型的空检查,否则如果找不到匹配项,则可能导致NullReferenceException