2015-05-11 87 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

相關問題