网格视图没有显示结果

本文关键字:显示 结果 视图 网格 | 更新日期: 2023-09-27 17:49:48

我想在运行时绑定GridView,当DataSource被选中时,当用户从DropDownList中选择一个选项时。但是所选择的表或连接没有正确创建。请检查以下代码,并给我适当的解决方案。

    public partial class index : System.Web.UI.Page
    {
        SqlConnection conn = new SqlConnection();
        string option = "";
        protected void Page_Load(object sender, EventArgs e)
        {
            option = selectProductdropdown.SelectedValue;
        }
        protected void Button1_Click(object sender, EventArgs e)
        {
            Label2.Text = option;
            if (option == "Books")
            {
                Label3.Text = option;
                conn.ConnectionString = ConfigurationManager.ConnectionStrings["booksconnectionstring"].ConnectionString;
                conn.Open();
                SqlCommand cmd = new SqlCommand("SELECT * from books", conn);
                cmd.CommandType = CommandType.Text;
                SqlDataAdapter reader = new SqlDataAdapter(cmd);
                DataSet s = new DataSet();
                reader.Fill(s);
                GridView1.DataSource = s;
                GridView1.DataBind();
                conn.Close();
            }

网格视图没有显示结果

问题是在您的page_load事件中,您正在为选项分配值。当你点击按钮,page_load将再次调用,你的值将重置。

应该是…

 protected void Page_Load(object sender, EventArgs e)
    {
       if(!Page.IsPostBack)
        option = selectProductdropdown.SelectedValue;
    }

如果你喜欢……会更好。

if (selectProductdropdown.SelectedValue == "Books")

因为你可能在每次页面加载时清空选项

避免使用公共变量string option =" ";

相反,在中定义相同的内容单击Event并在那里获得所选值

option = selectProductdropdown.SelectedValue;// move to click event

因为当按钮被单击时,下拉菜单将被重置(假设您没有在这里显示下拉绑定代码)

protected void Page_Load(object sender, EventArgs e)
{
    if (!Page.IsPostBack)
        option = selectProductdropdown.SelectedValue;
}

您省略了这一行:

cmd.ExecuteReader();

放在语句之间,像这样:

SqlCommand cmd = new SqlCommand("SELECT * from books", conn);
cmd.ExecuteReader();  // <-- HERE
cmd.CommandType = CommandType.Text;