从下拉控件(C#)填充gridview [英] Populate gridview from dropdown control (C#)

查看:66
本文介绍了从下拉控件(C#)填充gridview的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在有一个学期名称下拉列表的asp网页上工作,并且根据从该下拉列表中选择的项目,将显示级别和课程的网格视图.

I worked on asp web page that have a dropdown of semester names, and according to the selected item from this dropdown a gridview of levels and courses will appear.

问题在于网格视图永远不会根据下拉选择而改变

The problem is that grid view never change according to the drop down selection

因此,当我选择一个学期名称时,假设说"Fall" ,Gridview会显示所有学期的"Fall& Spring& amp; Summer" 及其级别和课程.

So when i choose a semester name let's say "Fall", the gridview shows all semesters " Fall & Spring & Summer" with their levels and courses.

这是我的代码:

public partial class _Default : System.Web.UI.Page
{

protected void Page_Load(object sender, EventArgs e)
{

    if (!IsPostBack)
    {
      gvSemester.DataSource = GetData(string.Format("select COURSE_SEMESTER from COURSE GROUP BY  COURSE_SEMESTER"));

        gvSemester.DataBind();
    }
}

private static DataTable GetData(string query)
{
    string constr = ConfigurationManager.ConnectionStrings["ConnectionString2"].ConnectionString;
    using (OracleConnection con = new OracleConnection(constr))
    {
        using (OracleCommand cmd = new OracleCommand())
        {
            cmd.CommandText = query;
            using (OracleDataAdapter sda = new OracleDataAdapter())
            {
                cmd.Connection = con;
                sda.SelectCommand = cmd;
                using (DataSet ds = new DataSet())
                {
                    DataTable dt = new DataTable();
                    sda.Fill(dt);
                    return dt;
                }
            }
        }
    }
}

protected void Show_Hide_LevelsGrid(object sender, EventArgs e)
{
    ImageButton imgShowHide = (sender as ImageButton);
    GridViewRow row = (imgShowHide.NamingContainer as GridViewRow);
    if (imgShowHide.CommandArgument == "Show")
    {
        row.FindControl("pnlLevels").Visible = true;
        imgShowHide.CommandArgument = "Hide";
        imgShowHide.ImageUrl = "~/image/minus.png";
        string semesterId = gvSemester.DataKeys[row.RowIndex].Value.ToString();// semester
        GridView gvLevel = row.FindControl("gvLevel") as GridView;
        BindLevels(semesterId, gvLevel);
    }
    else
    {
        row.FindControl("pnlLevels").Visible = false;
        imgShowHide.CommandArgument = "Show";
        imgShowHide.ImageUrl = "~/image/plus.png";
    }
}

private void BindLevels(string semesterId, GridView gvLevel)
{

    gvLevel.ToolTip = semesterId;
    gvLevel.DataSource = GetData(string.Format("SELECT COURSE_LEVEL from COURSE  where COURSE_SEMESTER= '" + semesterId + "' GROUP BY  COURSE_LEVEL ORDER BY COURSE_LEVEL")); //was COURSE_SEMESTER=Check it shows the selected semester levels for all
    gvLevel.DataBind(); 
}



protected void Show_Hide_CoursesGrid(object sender, EventArgs e)
{
    ImageButton imgShowHide = (sender as ImageButton);
    GridViewRow row = (imgShowHide.NamingContainer as GridViewRow);
    if (imgShowHide.CommandArgument == "Show")
    {
        row.FindControl("pnlCourses").Visible = true;
        imgShowHide.CommandArgument = "Hide";
        imgShowHide.ImageUrl = "~/image/minus.png";
        string levelId = (row.NamingContainer as GridView).DataKeys[row.RowIndex].Value.ToString();//level
        GridView gvCourse = row.FindControl("gvCourse") as GridView;//..
        BindCourses(levelId, gvCourse);//..
    }
    else
    {
        row.FindControl("pnlCourses").Visible = false;
        imgShowHide.CommandArgument = "Show";
        imgShowHide.ImageUrl = "~/image/plus.png";
    }
}

private void BindCourses(string levelId, GridView gvCourse)
{

    gvCourse.ToolTip = levelId;
    gvCourse.DataSource = GetData(string.Format("select * from COURSE where COURSE_LEVEL='{0}'", levelId));
    gvCourse.DataBind();
}


protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
    {

    }



}

推荐答案

您可以设置下拉列表 AutoPostBack = True .

protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
    BindLevels();
}

这篇关于从下拉控件(C#)填充gridview的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆