C# 在c中从服务器端添加链接按钮#
嗨,我正试图添加asp:LinkButton在特定的分区。但它不工作。它只是添加文本,但链接不显示。我不知道我错在哪里。下面是我想做的C# 在c中从服务器端添加链接按钮#,c#,asp.net,C#,Asp.net,嗨,我正试图添加asp:LinkButton在特定的分区。但它不工作。它只是添加文本,但链接不显示。我不知道我错在哪里。下面是我想做的 <div class="form-group"> <div id="divTitle" runat="server"> //I am trying to add link button here </div> </div> //我试图在这里添加链接按钮 //服务器端代码如下 Int32
<div class="form-group">
<div id="divTitle" runat="server">
//I am trying to add link button here
</div>
</div>
//我试图在这里添加链接按钮
//服务器端代码如下
Int32 counter = 1;
divTitle.Controls.Clear();
foreach (DataRow dritem in dt.Rows)
{
divTitle.InnerHtml = "<asp:LinkButton ID='lbl" + counter++ + "' runat='server' CommandArgument='" + dritem["DocumentName"] + "' OnClick='ViewDocument' Visible='true'>" + dritem["UpDocumentName"] + "</asp:LinkButton>";
}
Int32计数器=1;
divTitle.Controls.Clear();
foreach(数据行中的数据行dritem)
{
divTitle.InnerHtml=“”+dritem[“UpDocumentName”]+”;
}
分配给divTitle.InnerHtml的字符串只是一个字符串。试试这个:
(或者按照评论中的建议将您的数据绑定到repeater——我想这是正确的方式)
你可以这样做
<div class="form-group">
<div id="divTitle" runat="server">
//I am trying to add link button here
</div>
</div>
问题是,您试图通过将ASP控件添加为内部html来创建它,但这忽略了.NET服务器如何处理ASP页面以及浏览器如何解释给定页面。 在服务器端代码中将InnerHTML添加到div时,.NET服务器将其视为不需要解析的html代码。但是ASP控件必须解析为实际的HTML标记,以便浏览器能够识别它们。
因为它没有被解析,所以浏览器会得到一个标签,上面写着“你必须使用RenderControl来控制InnerHtml,你只需要在一个特定的位置添加一个普通的HTML。”。您已将控件添加到该位置。您可以检查以下url:这是中继器的用途,您应该避免在Web窗体中手动添加控件。您可以使用Visible属性显示或隐藏LinkButton。单击事件处理程序的签名是什么?它是这样的:
void ViewDocument(对象发送者,EventArgs e)
?如果使用的方法不接受正确的参数,则运行时将无法找到正确的签名,因此将无法进行调用。受保护的void ViewDocument(对象发送方,EventArgs e)
<div class="form-group">
<div id="divTitle" runat="server">
//I am trying to add link button here
</div>
</div>
Control divTitleControl = this.Page.FindControl("divTitle");
LinkButton linkButton = new LinkButton();
divTitleControl.Controls.Add(linkButton);
divTitle.InnerHtml = "<a ID='lbl" + counter++ + ...
var MyLinkButton = new LinkButton();
MyLinkButton.ID = "lbl" + counter++;
MyLinkButton.Text = dritem["UpDocumentName"];
MyLinkButton.CommandArgument = dritem["DocumentName"];
MyLinkButton.Click += ViewDocument;
divTitle.Controls.Add(MyLinkButton);