asp.net DropDownList的OnSelectedIndexChanged,它位于datalist之外

时间:2015-12-10 15:54:46

标签: c# asp.net .net checkbox datalist

我有一个包含CheckBoxList的DataList,我在datalist之外的selectedindexchanged上过滤了数据列表。问题是当我从下拉列表中选择值时,我无法从数据库中获取检查的值 和checkboxlist项目计数为0

这是代码

  protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
    {

        string GroupValue;
        if (DropDownList1.SelectedValue.ToString().IsEmpty()) { GroupValue = null; } else { GroupValue = DropDownList1.SelectedValue.ToString(); }

        if (pageMode == PageMode.Update)
        {
            int rowID = int.Parse(GrdUsers.GetRowValues(GrdUsers.FocusedRowIndex, "ID").ToString());
            //ConnectionLayer cn = new ConnectionLayer();
            //DataTable dt = cn.ExecutQuery("PagesSys", new object[] { 0, DropDownList1.SelectedItem.Text.ToString() });
            //dlstPages.DataSource = dt;
            //dlstPages.DataBind();

            BindOption(rowID);

        }
  private void BindOption(int UserID)
{
    try
    {
        if (pageMode == PageMode.Update)
        {
            if (DropDownList1.SelectedItem.Value != "-1")
            {

                dlstPages.DataSource = ViewState["FunctionOption"];
                dlstPages.DataBind();

                if (dlstPages.Items.Count > 0)
                {
                    for (int i = 0; i < dlstPages.Items.Count; i++)
                    {
                        DataTable dt = new Users().UserPrivilege(UserID, int.Parse(dlstPages.DataKeys[i].ToString()));

                        if (dt.Rows.Count > 0)
                        {
                            dt.PrimaryKey = new DataColumn[] { dt.Columns["OptionId"] };
                            CheckBoxList chklist = (CheckBoxList)dlstPages.Items[i].FindControl("chkOption");

                            for (int j = 0; j < chklist.Items.Count; j++)
                            {
                                if (dt.Rows.Find(chklist.Items[j].Value) != null)
                                {
                                    chklist.Items[j].Selected = true;
                                }
                            }

                        }

                    }
                }
            }
        }
    }
    catch (Exception ex)
    {

    }




}

1 个答案:

答案 0 :(得分:0)

您需要使用函数的参数来获取下拉列表对象,然后您可以找到所选的值。类似的东西:

DropDownList ddl= (DropDownList)sender;
var value = ddl.SelectedValue.ToString();