2016-06-21 78 views
0

我从来没有使用C#.NET用户控件,和我工作的一个项目,我有3个dropdownlists,并需要把它们放入一个用户控件。我想知道如何去做这件事。我将发布我的下拉列表的代码,以及屏幕抓取他们目前的样子,以及他们应该看起来像什么。谢谢。添加DropDownLists到用户控件C#

public partial class _default2 : System.Web.UI.Page 
    { 
     protected void Page_Load(object sender, EventArgs e) 
     { 
      if (!IsPostBack) 
      { 
       DropDownList1.DataBind(); 
       DropDownList1_SelectedIndexChanged(sender, e); 
       DropDownList2.DataBind(); 
       DropDownList2_SelectedIndexChanged(sender, e); 
       DropDownList3.DataBind(); 
      } 
     } 

     // Drop Down List 1 
     protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e) 
     { 
      XmlDataSource2.XPath = String.Format("mmsdata/mill[@n='{0}']/mach", DropDownList1.SelectedValue); 
     } 
     // Drop Down List 2 
     protected void DropDownList2_SelectedIndexChanged(object sender, EventArgs e) 
     { 
      XmlDataSource3.XPath = String.Format("mmsdata/mill[@n='{0}']/mach[@n='{1}']/srn", DropDownList1.SelectedValue, DropDownList2.SelectedValue); 
      BindSensorList(); 
     } 

     protected void BindSensorList() 
     { 
      //sender.GetType(); 
      XmlDocument xdoc = XmlDataSource3.GetXmlDocument(); 
      XmlNodeList nodes = xdoc.SelectNodes(XmlDataSource3.XPath); 
      var sensors = new List<Sensor>(); 
      foreach (XmlNode node in nodes) 
      { 
       sensors.Add(new Sensor { id = node.Attributes["n"].Value, name = node.InnerText }); 
      } 

      DropDownList3.DataSource = sensors; 
      DropDownList3.DataValueField = "id"; 
      DropDownList3.DataTextField = "name"; 
      DropDownList3.DataBind(); 
     } 

我希望他们看起来像

First picture

他们的样子

Second Picture

回答

1

添加您的下拉列表,最简单的方式向用户控件是什么在项目解决方案中创建用户控件,然后放入在ui中使用p.net webform代码,然后您可以使用与创建Web窗体相同的方式编写代码。

样品用户控制

<%@ Control Language="C#" ClassName="SampleUserControl" %> 
<h3> <u>User Control</u> </h3> 
<script runat=server> 
</script> 
Drop down 1: <asp:DropDownList id="ColorList" 
       AutoPostBack="True" 
       OnSelectedIndexChanged="Selection_Change" 
       runat="server"> 

       <asp:ListItem Selected="True" Value="White"> White </asp:ListItem> 
       <asp:ListItem Value="Silver"> Silver </asp:ListItem> 
       <asp:ListItem Value="DarkGray"> Dark Gray </asp:ListItem> 
       <asp:ListItem Value="Khaki"> Khaki </asp:ListItem> 
       <asp:ListItem Value="DarkKhaki"> Dark Khaki </asp:ListItem> 
      </asp:DropDownList> 
<asp:label id="Label1" runat=server/> 

可以在页面上使用的用户控制和动态加载的内容,只是初始化在页面上您希望在使用它,并通过在值的方法相同你加载一个类/页面

+0

“他们看起来像什么”和“我想他们看起来像什么”是后退,我需要他们是相反的,我修复了对图片的评论。现在是正确 –

+0

@JordanDarland不仅仅是一个样式问题?如果您在动态创建它们时将类或ID应用于下拉控件,则可以使用CSS创建样式。 –