Asp.net 带有输入参数的用户控件

Asp.net 带有输入参数的用户控件,asp.net,user-controls,Asp.net,User Controls,我有一个属性为(*.acsx.cs)的用户控件: 是否有某种方法可以将参数传递给*.aspx中的此控件,类似这样的内容 <% foreach (Person p in persons) { %> <uc:PersonAccessStatus ID="PersonAccessStatus" runat="server" Person=p /> <% } %> 是。您可以在UserControl上创建属性。我通常使用它来启用或禁用控件的功能

我有一个属性为(*.acsx.cs)的用户控件:

是否有某种方法可以将参数传递给*.aspx中的此控件,类似这样的内容

<%  foreach (Person p in persons) {  %>
        <uc:PersonAccessStatus ID="PersonAccessStatus" runat="server" Person=p />
<%  } %>

是。您可以在UserControl上创建属性。我通常使用它来启用或禁用控件的功能。在aspx中分配值很简单

<uc:PersonAccessStatus ID="PersonAccessStatus" runat="server" EnableSomething="true" />

谢谢你,g。你真的帮助了我,虽然我还没有找到更优雅的解决方案。从*.aspx的侧面看,它看起来是这样的:

<%foreach (Person p in persons) 
  {          
    controls_PersonAccessStatus control = LoadControl("~/App_Controls/PersonAccessStatus.ascx") as controls_PersonAccessStatus;
    control.Person = p;  %>
    <%=RenderControl(control) %>      
<%}%>

所有参数和函数必须在asp用户控件中用
声明才能多次使用

例如:

var ii<%= this.ID %> = 0;
varⅡ=0;

function load_2v()
{
var BI1=document.getElementById(“”);
var BI2=document.getElementById(“”);
开关(二){
<%foreach (Person p in persons) 
  {          
    controls_PersonAccessStatus control = LoadControl("~/App_Controls/PersonAccessStatus.ascx") as controls_PersonAccessStatus;
    control.Person = p;  %>
    <%=RenderControl(control) %>      
<%}%>
public string RenderControl(Control ctrl)
{
    StringBuilder sb = new StringBuilder();
    StringWriter tw = new StringWriter(sb);
    HtmlTextWriter hw = new HtmlTextWriter(tw);

    ctrl.RenderControl(hw);
    return sb.ToString();
}
var ii<%= this.ID %> = 0;
function load_2v<%= this.ID %> ()
{
    var BI1 = document.getElementById("<%= Li1.ClientID %>");
    var BI2 = document.getElementById("<%= Li2.ClientID %>");
    switch (ii<%= this.ID %>) {