вид сетки не показывает результат - PullRequest
0 голосов
/ 13 апреля 2011

Я хочу связать 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();
            }

Ответы [ 5 ]

2 голосов
/ 13 апреля 2011

Проблема в вашем событии page_load, где вы присваиваете значение опции.Когда вы нажмете кнопку, page_load вызовет снова, и ваше значение будет сброшено.

это должно быть ...

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

ИЛИ было бы лучше, если вам нравится ..

if (selectProductdropdown.SelectedValue == "Books")
0 голосов
/ 13 апреля 2011
protected void Page_Load(object sender, EventArgs e)
{
    if (!Page.IsPostBack)
        option = selectProductdropdown.SelectedValue;
}
0 голосов
/ 13 апреля 2011

Вы пропустили эту строку:

cmd.ExecuteReader();

Поместите это между утверждениями, например так:

SqlCommand cmd = new SqlCommand("SELECT * from books", conn);
cmd.ExecuteReader();  // <-- HERE
cmd.CommandType = CommandType.Text;
0 голосов
/ 13 апреля 2011

Избегайте общедоступной переменной string option = "";

Вместо этого определите то же самое в Нажмите Событие и получите там выбранное значение

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

Поскольку при нажатии кнопки выпадающий список сбрасывается (при условии, что вы не указали здесь код привязки выпадающего списка)

0 голосов
/ 13 апреля 2011

потому что вы, вероятно, очищаете опцию при каждой загрузке страницы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...