网格视图不显示结果
我想在运行时绑定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();
}
因为您可能在每次页面加载时清空选项。
避免使用公共变量string option =“”;
而是定义了相同的Click事件,并获得选择的值有
option = selectProductdropdown.SelectedValue;// move to click event
因为单击该按钮时,下拉菜单会被重置(假设你没有在这里显示的下拉绑定代码)
我将它移动到按钮单击事件。但仍然没有显示出结果。 – Manish 2011-04-13 07:04:53
问题出现在您的page_load事件中,您正在为选项分配值。当你点击按钮时,page_load会再次调用,你的值将被重置。
应该...
protected void Page_Load(object sender, EventArgs e)
{
if(!Page.IsPostBack)
option = selectProductdropdown.SelectedValue;
}
或者如果你喜欢它会更好..
if (selectProductdropdown.SelectedValue == "Books")
您遗漏了这行:
cmd.ExecuteReader();
将它之间的声明,像这样:
SqlCommand cmd = new SqlCommand("SELECT * from books", conn);
cmd.ExecuteReader(); // <-- HERE
cmd.CommandType = CommandType.Text;
试试这个你错过了这两个代码之间的代码 – 2011-04-13 07:16:48
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
option = selectProductdropdown.SelectedValue;
}
你可以在这里把你的错误信息? – 2011-04-13 06:53:01