2015-05-11 3 views
1

Я бы хотел, чтобы изменить мою таблицу html, когда я выбираю элемент списка из выпадающего меню.Как отобразить таблицу html с помощью раскрывающегося списка?

Например,

Обновлено HTML Логика:

<tbody> 
<tr> 
<th><asp:TextBox ID="TextBox1" runat="server"></asp:TextBox></th> 
<th><asp:TextBox ID="TextBox2" runat="server"></asp:TextBox></th> 
<th><asp:TextBox ID="TextBox3" runat="server"></asp:TextBox></th> 
</tr> 
    <tr> 
    <asp:Literal ID="litInfo" runat="server"></asp:Literal> 
    </tr> 
    </tbody> 

<p><asp:DropDownList ID="ddlDate" runat="server" Width="200px" OnSelectedIndexChanged="myListDropDown_Change" AutoPostBack="True"> 

     </asp:DropDownList></p> 

еженедельно функция():

 public string weekly() 
    { 
     string htmlStr = ""; 
     SqlCommand cmd = con.CreateCommand(); 
     cmd.CommandText = "select Deal, [property], [event], [Date] from [dbo].[Database_CRE]"; 
     con.Open(); 
     SqlDataReader reader = cmd.ExecuteReader(); 
     while (reader.Read()) 
     { 
      string name = reader.GetString(0); 

      string loan = reader.GetString(1); 

      string evnt = reader.GetString(2); 

      string b = linkTag(name); 

      htmlStr += "<tr><td>" + b + "</td>" + "<td>" + loan + "</td>" + "<td>" + evnt + "</td></tr>"; 
     } 
     con.Close(); 
     return htmlStr; 
    } 

Обновленный код сервера:

 protected void myListDropDown_Change(object sender, EventArgs e) 
    { 
     DropDownList ddl = FindControl("ddlDate") as DropDownList; 
     if (ddl != null) 
     { 
      if (ddl.SelectedIndex == 1) 
      { 
       litInfo.Text = weekly(); 
      } 
     } 
    } 


    protected void Page_Load(object sender, EventArgs e) 
    {   
      //Add item to DropDownList 
      ddlDate.Items.Insert(0, "Select Timeline"); 
      ddlDate.Items.Insert(1, "Weekly"); 
      ddlDate.Items.Insert(2, "Monthly"); 

      litInfo.Text = current();    
    } 

Я хотел был бы построить логику для, если я выбираю еженедельную опцию из выпадающего меню, я хотел бы, чтобы html-таблица отображала метод weekly().

Должен ли я создать этот логин в методе current(). если да, то как мне передать метод выпадающего события?

Любая дополнительная помощь будет очень признательна. Большое спасибо

+0

Можете ли вы опубликовать полную HTML-страницу – Wize

ответ

1

Здесь вы можете использовать 3 Panels. Каждый с различным шаблоном таблицы HTML, как вы хотели бы еженедельно или ежемесячно или что угодно. Затем просто сделайте только один из них видимым одновременно на основе выделения.

Таким образом, вам не нужно вставлять много кода в код и просто играть с visibility из этих 3-х панелей на основе выбора.

0

Заменить

<%=current()%> 

с

<asp:Literal ID="litInfo" runat="server"></asp:Literal> 

Затем в коде позади добавьте следующий код

protected void Page_Load(object sender, EventArgs e) 
{ 
    litInfo.Text=current(); 
} 

Теперь измените Изменить событие

protected void myListDropDown_Change(object sender, EventArgs e) 
    { 

     if (ddlDate.SelectedValue == "Weekly") 
     { 
      litInfo.Text= weekly(); 


     } 
     else if (ddlDate.SelectedValue == "Monthly") 
     { 
      litInfo.Text=monthly(); 


     } 

    } 
+0

Я предполагаю, что у вас есть 3 функции, называемые current(), weekly() и Monthly(), которые возвращают html-таблицу (или некоторый html). – Wize

+0

Дорогой @wize, большое спасибо за вашу помощь. Я не могу заставить метод выпадающего события отображать еженедельные() или месячные() методы в тег 'literal'. Я также пробовал отлаживать метод, но ничего не происходит, когда я выбираю опцию из раскрывающегося списка. Я приложил свою еженедельную функцию, как ссылку. Спасибо за ваш ответ и время. – user3070072

+0

Если вы установили точку останова в myListDropDown_Change и в еженедельном(), то это сломается – Wize

Смежные вопросы