Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在c中从服务器端添加链接按钮#_C#_Asp.net - Fatal编程技术网

C# 在c中从服务器端添加链接按钮#

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

嗨,我正试图添加asp:LinkButton在特定的分区。但它不工作。它只是添加文本,但链接不显示。我不知道我错在哪里。下面是我想做的

<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);