【问题标题】:Telerik RadComboBox drop down - change selection via code behindTelerik RadComboBox 下拉菜单 - 通过后面的代码更改选择
【发布时间】:2016-09-12 21:26:27
【问题描述】:

为此发疯。我有一个 Telerik RadComboBox 下拉菜单,可以在其中选择员工姓名。在它旁边我有一个常规文本框,用户可以在其中输入员工编号(客户要求这样做)。我已经编写了所有代码来完成这项工作,但是我缺少能够通过后面的代码更改 Telerik RadComboBox 下拉选择的神奇代码行。

我已经对此进行了详尽的搜索,并找到了一个解决方案,该解决方案应该能够通过处理下拉框对象来选择一个新人:

rdcEmployeename.Items.FindItemByValue(pID.ToString()).Selected = true;

这实际上什么也没做,什么也没发生……是的,我正在为 pID 传递有效值。我对 Telerik 感到迷茫和陌生,有人可以帮忙解决这个问题吗?

提前致谢。

这是页面后面的整个类:

    public partial class admTimeAllocationPage : BasePage
{
    public DataTable timeallocationdatatable;

    private static SqlConnection sqlCon = new SqlConnection(ConfigurationManager.AppSettings["connStr"].ToString());
    private void Page_Load(object sender, EventArgs e)
    {

        //string temp = Convert.ToString(Session["loginPersonID"]);       

        //   unlockCheckBox.ForeColor = Color.Red;
        //   unlockCheckBox.Text = "Unlock Checkbox";

        string strSkin = ConfigurationManager.AppSettings["Telerik.Skin"].ToString();
        if (!IsPostBack)
        {
            Pnladd.Visible = false;

            Persons GetEmployeeName = new Persons(sqlCon);

            DataTable dtpersonname = GetEmployeeName.GetAll_ID_And_NameEmployeesOnly();
            rdcEmployeename.DataSource = dtpersonname;
            rdcEmployeename.DataTextField = "PreferredName";
            rdcEmployeename.DataValueField = "ID";
            rdcEmployeename.DataBind();


            int PID = Convert.ToInt32(rdcEmployeename.SelectedValue);


            DataTable dtEmpnumber = GetEmployeeName.GetAllEmpNumber(PID);
            rdcEmpno.DataSource = dtEmpnumber;
            rdcEmpno.DataTextField = "employmentNumber";
            rdcEmpno.DataValueField = "id";
            rdcEmpno.DataBind();

            Employees Getdetail = new Employees(sqlCon);
            DataTable BindEmpDetails = Getdetail.GetDataFromEmployeeinfo(PID);
            Session["Idpass"] = PID;
            //RadGrid1.DataSource = BindEmpDetails;
            //RadGrid1.MasterTableView.DataSource = BindEmpDetails;

            DataTable Codebind = Getdetail.GetCode();
            Radcode.DataSource = Codebind;
            Radcode.DataTextField = "code";
            Radcode.DataBind();



            TimeAllocation GetTimeAllocationData = new TimeAllocation(sqlCon);
            DataTable BindTimeAllocationData = GetTimeAllocationData.GetCurrentDataFromTimeAllocationTable(PID);
            Session["Idpass"] = PID;
            RadGrid1.DataSource = BindTimeAllocationData;
            RadGrid1.MasterTableView.DataSource = BindTimeAllocationData;

            timeallocationdatatable = BindTimeAllocationData;


            EmployeeScheduledHours.Text = Convert.ToString(GetTimeAllocationData.GetEmployeeScheduledHours(PID));

            EmployeeAllocatedHours.Text = Convert.ToString(GetTimeAllocationData.GetEmployeeAllocatedHours(PID));

            UseTimeAllocation.Checked = getCheckBoxValue();

            UseTimeAllocation.Enabled = false;

            EmployeeNumber.Text = Convert.ToString(EmployeeNumberFromPersonID(PID));



        }
    }

    private int PersonIDFromEmployeeNumber(int employeeNumber)
    {
        using (SqlConnection connection = new SqlConnection(ConfigurationManager.AppSettings["connStr"].ToString()))
        {
            SqlCommand cmdselect = new SqlCommand(
            " SELECT TOP 1 ID FROM Persons WHERE CONVERT(int,ADP_PersonID) = " + employeeNumber, connection);

            int pID;

            try
            {
                connection.Open();
                pID = Convert.ToInt32(cmdselect.ExecuteScalar());
            }
            catch (Exception err)
            {
                String strErr = err.Message;
                throw;
            }
            finally
            {
                connection.Close();
            }
            return pID;
        }
    }

    private int EmployeeNumberFromPersonID(int personID)
    {
        using (SqlConnection connection = new SqlConnection(ConfigurationManager.AppSettings["connStr"].ToString()))
        {
            SqlCommand cmdselect = new SqlCommand(
            " SELECT TOP 1 CONVERT(int,ADP_PersonID) FROM Persons WHERE id = " + personID, connection);

            int employeeNumber;

            try
            {
                connection.Open();
                employeeNumber = Convert.ToInt32(cmdselect.ExecuteScalar());
            }
            catch (Exception err)
            {
                String strErr = err.Message;
                throw;
            }
            finally
            {
                connection.Close();
            }
            return employeeNumber;
        }
    }


    protected void btnEmployeeNumberLookup_Click(Object sender, EventArgs e)
    {


        int employeeNumber=0;
        try
        {
            employeeNumber = Convert.ToInt32(EmployeeNumber.Text);
        }
        catch (Exception err)
        {
            EmployeeNumber.Text = "Invalid Entry, Try Again";              
        }

        int pID = PersonIDFromEmployeeNumber(employeeNumber);

        unlockCheckBox.ForeColor = Color.Red;
        unlockCheckBox.Text = "Unlock Checkbox";


        if (pID != 0)
        {

            //I Want to change the selection HERE!!!!!!

            rdcEmployeename.ClearSelection(); 
            rdcEmployeename.SelectedValue = pID.ToString();


        }

        else
        {
            EmployeeNumber.Text = "Invalid Entry, Try Again"; 
        }



    }
    protected void rdcEmployeename_SelectedIndexChanged(object sender, EventArgs e)
    {
        unlockCheckBox.ForeColor = Color.Red;
        unlockCheckBox.Text = "Unlock Checkbox";

        int PersonID = Convert.ToInt32(rdcEmployeename.SelectedValue);

        Persons GetPersonName = new Persons(sqlCon);
        DataTable dtEmpnumber = GetPersonName.GetAllEmpNumber(PersonID);
        rdcEmpno.DataSource = dtEmpnumber;
        rdcEmpno.DataTextField = "employmentNumber";
        rdcEmpno.DataValueField = "id";
        rdcEmpno.DataBind();
        Session["Idpass"] = PersonID;
        Employees Getdetail = new Employees(sqlCon);
        DataTable BindEmpDetails = Getdetail.GetDataFromEmployeeinfo(PersonID);

        TimeAllocation GetTimeAllocationData = new TimeAllocation(sqlCon);
        DataTable BindTimeAllocationData = GetTimeAllocationData.GetCurrentDataFromTimeAllocationTable(PersonID);

        timeallocationdatatable = BindTimeAllocationData;
        RadGrid1.DataSource = BindTimeAllocationData;
        RadGrid1.DataBind();
        EmployeeScheduledHours.Text = Convert.ToString(GetTimeAllocationData.GetEmployeeScheduledHours(PersonID));
        EmployeeAllocatedHours.Text = Convert.ToString(GetTimeAllocationData.GetEmployeeAllocatedHours(PersonID));

        UseTimeAllocation.Checked = getCheckBoxValue();
        UseTimeAllocation.Enabled = false;

        EmployeeNumber.Text = Convert.ToString(EmployeeNumberFromPersonID(PersonID));

    }
}

我是 stackoverflow 的新手,所以请原谅格式。我正在尝试使下拉框的选定值从“btnEmployeeNumberLookup_Click”更改。

【问题讨论】:

  • 在 Telerik 论坛上以下帖子的最后一个答案中,有人建议使用此代码:rdcEmployeename.ClearSelection(); rdcEmployeename.SelectedValue = pID.ToString();。你可以试试看它是否适合你。 (来源:telerik.com/forums/combobox-selectedvalue-not-working
  • 您发布的代码看起来像是 c# 代码隐藏。如果是这种情况,那么问题很可能是您将该代码放入的事件。您需要发布有关事件连接和代码隐藏或 javascript 的更多信息。
  • 替换为 rdcEmployeename.ClearSelection(); rdcEmployeename.SelectedValue = pID.ToString();没用
  • 您的代码可能没问题。我猜你需要正确接线。
  • Adam Heeg -- 我已经更新了问题

标签: c# asp.net telerik radcombobox


【解决方案1】:

尝试将 RadComboBox 添加到 radAjaxManager:

<telerik:RadAjaxManager ID="RadAjaxManager" runat="server">
    <AjaxSettings>

    <telerik:AjaxSetting AjaxControlID="rdcEmployeenameEmployeeNumber">
                <UpdatedControls>
                    <telerik:AjaxUpdatedControl ControlID="EmployeeNumber"></telerik:AjaxUpdatedControl>
                </UpdatedControls>
        </telerik:AjaxSetting>
</AjaxSettings>
</telerik:RadAjaxManager>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-21
    • 2011-12-30
    • 2015-05-15
    • 1970-01-01
    • 1970-01-01
    • 2021-03-17
    • 1970-01-01
    相关资源
    最近更新 更多