0

我目前正在开发一个 Web 表单项目,并在后面的代码中使用 InnerHtml 循环显示项目列表。

像这样的东西。

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>

但是,该按钮未呈现,我需要在网格显示中添加一个按钮。有没有办法按照我现在的方式添加按钮和处理程序?

4

2 回答 2

1

为什么不直接使用中继器或 DataList?

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" />

你当然可以使用一个DataList,它的设置方式几乎相同,除了它可以为你呈现一个看起来是你想要的表

于 2013-06-18T09:34:35.640 回答
0

我认为在没有正确创建 href 的地方存在问题。

 Users.InnerHtml += "<a href='UserDetail.aspx?username=" + email + "'>"+email+"</a>";

尝试通过将此行替换为

Users.InnerHtml += "<a href='UserDetail.aspx?username='" + email + "''>"+email+"</a>";
于 2013-06-18T09:33:55.907 回答