2015-05-11 103 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表格呈现每周()。方法。

我需要在current()方法内创建此登录。如果是这样,我将如何通过下拉事件方法?

任何进一步的帮助将非常感激。非常感谢

+0

你能发表完整的HTML页面吗 – Wize

回答

1

您可以在这里使用3​​。每个人都有不同的HTML表格模板,你想每周或每月或任何。然后,根据下拉选择,只让其中一个可见。

这样,您不必在代码隐藏中输入太多代码,只需根据选择使用这3个面板中的visibility即可。

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,非常感谢您的帮助。我无法得到dropdown事件方法来将“weekly”()或monthly()方法呈现给'literal'标记。我也尝试调试该方法,但每当我从下拉列表菜单中选择一个选项时似乎都没有发生。作为参考,我附上了我的每周功能。感谢您的回复和时间。 – user3070072

+0

如果你在myListDropDown_Change中放置断点,并在每周()中断行 – Wize

相关问题