使用 HtmlGenericControl 添加标记

Add a tag using HtmlGenericControl

提问人:Chiako 提问时间:7/18/2016 最后编辑:Chiako 更新时间:7/18/2016 访问量:1436

问:

我想添加带有onserverclick属性的“a”标签

我正在使用以下代码。但是onserverclick事件未触发(不工作)

onserver单击:

protected void Pagination_Click(object sender, EventArgs e)
{

}

我的 C# 代码:

HtmlGenericControl li = new HtmlGenericControl("li");
olpage.Controls.Add(li);


HtmlGenericControl a = new HtmlGenericControl("a");
a.Attributes.Add("ID", i.ToString());
a.Attributes.Add("onserverclick", "Pagination_Click");
a.InnerHtml = i.ToString();
li.Controls.Add(a);

HTML代码:

<%@ Master Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true"CodeFile="Products.master.cs" Inherits="Productmaster"%>...
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">...
    <div class="pages">
         <ol id="olpage" runat="server">

         </ol>
    </div>...
C# onClick HTMLGenricControl

评论


答:

0赞 GMon 7/18/2016 #1

将 C# 代码更改为使用 LinkButton 而不是 HTMLGenericControl,而不是设置 onserverclick 的属性,将其设置为 Click +=

LinkButton a = new LinkButton();
a.Attributes.Add("ID", i.ToString()); 
a.Click += Pagination_Click;
a.Text = i.ToString();
li.Controls.Add(a);

HTMLGenericControl 只是呈现为

<a id="id" onserverclick="Pagination_Click">id</a>

浏览器不知道如何处理 onserverclick 属性,因为它不是有效的 HTML。使用 LinkButton 呈现为

<a id="id" href="javascript:__doPostBack('ctl00$MainContent$ctl01','')">id</a>

这实际上导致它回发