C# 渲染<;输入类型=';提交'&燃气轮机;使用InnerHtml
我目前正在处理一个web表单项目,在代码隐藏中,我使用InnerHtml循环浏览项目列表以显示它 像这样的C# 渲染<;输入类型=';提交'&燃气轮机;使用InnerHtml,c#,asp.net,webforms,C#,Asp.net,Webforms,我目前正在处理一个web表单项目,在代码隐藏中,我使用InnerHtml循环浏览项目列表以显示它 像这样的 email = v.DomainObjectFields.Where(t => t.FieldName == "Email Address").First().FieldValue; name = v.DomainObjectFields.Where(t => t.FieldName == "First Name").First().FieldValue
email = v.DomainObjectFields.Where(t => t.FieldName == "Email Address").First().FieldValue;
name = v.DomainObjectFields.Where(t => t.FieldName == "First Name").First().FieldValue;
familyName = v.DomainObjectFields.Where(t => t.FieldName == "Last Name").First().FieldValue;
dateJoined = v.DomainObjectFields.Where(t => t.FieldName == "Date Joined").First().FieldValue;
Users.InnerHtml += "<tr><td>";
Users.InnerHtml += "<a href='UserDetail.aspx?username=" + email + "'>"+email+"</a>";
Users.InnerHtml += "</td>";
Users.InnerHtml += "<td>";
Users.InnerHtml += name;
Users.InnerHtml += "</td>";
Users.InnerHtml += "<td>";
Users.InnerHtml += familyName;
Users.InnerHtml += "</td>";
Users.InnerHtml += "<td>";
Users.InnerHtml += dateJoined;
Users.InnerHtml += "</td>";
Users.InnerHtml += "<td>";
**Users.InnerHtml += "<input type='button' id='butResetPassword' value='Resend Password'/>";**
Users.InnerHtml += "</td>";
Users.InnerHtml += "</tr>";
<div id="Users" runat="server">
</div>
email=v.DomainObjectFields.Where(t=>t.FieldName==“电子邮件地址”).First().FieldValue;
name=v.DomainObjectFields.Where(t=>t.FieldName==“First name”).First().FieldValue;
familyName=v.DomainObjectFields.Where(t=>t.FieldName==“Last Name”).First().FieldValue;
dateJoined=v.DomainObjectFields.Where(t=>t.FieldName==“Date Joined”).First().FieldValue;
Users.InnerHtml+=“”;
Users.InnerHtml+=“”;
Users.InnerHtml+=“”;
Users.InnerHtml+=“”;
Users.InnerHtml+=名称;
Users.InnerHtml+=“”;
Users.InnerHtml+=“”;
Users.InnerHtml+=familyName;
Users.InnerHtml+=“”;
Users.InnerHtml+=“”;
Users.InnerHtml+=dateJoined;
Users.InnerHtml+=“”;
Users.InnerHtml+=“”;
**Users.InnerHtml+=“”**
Users.InnerHtml+=“”;
Users.InnerHtml+=“”;
但是,该按钮没有渲染,我需要在网格显示中添加一个按钮。有没有一种方法可以像我现在这样添加一个按钮和一个处理程序?我认为在下面没有正确创建href的地方存在问题
Users.InnerHtml += "<a href='UserDetail.aspx?username=" + email + "'>"+email+"</a>";
Users.InnerHtml+=”;
尝试用替换此行来解决此问题
Users.InnerHtml += "<a href='UserDetail.aspx?username='" + email + "''>"+email+"</a>";
Users.InnerHtml+=”;
为什么不使用中继器或数据列表
protected void Page_Load(object sender, EventArgs e)
{
rptUsers.DataSource = users;
rptUsers.DataBind();
}
protected void rptUsers_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
User user = (User)e.Item.DataItem;
Label email = (Label)e.Item.FindControl("email");
Label name = (Label)e.Item.FindControl("name");
Label familyname = (Label)e.Item.FindControl("familyname");
Label datejoined = (Label)e.Item.FindControl("datejoined");
email.Text = user.EmalAddress;
name.Text = user.Name;
familyname.Text = user.FamilyName;
datejoined.Text = user.DateJoined.ToString();
}
}
protected void btnSubmit_OnClick(object sender, EventArgs e)
{
//submit
}
基本标记:
<asp:Repeater ID="rptUsers" runat="server" OnItemDataBound="rptUsers_OnItemDataBound">
<ItemTemplate>
<asp:Label id="email" runat="server" />
<asp:Label id="name" runat="server" />
<asp:Label id="familyname" runat="server" />
<asp:Label id="datejoined" runat="server" />
</ItemTemplate>
</asp:Repeater>
<asp:Button ID="btnSubmit" runat="server" OnClick="btnSubmit_OnClick" Text="Submit" />
它的设置方式基本相同,只是它可以为您呈现一个表,这似乎是您想要的这种呈现是在表单元素中进行的吗?如果不是,这可能就是问题所在。此外,不显示table元素。将标记存储在StringBuilder中并只设置一次InnerHtml属性也会更有效。