C# 使用c将asp.net LinkButton添加到文本#
我想在c#web表单应用程序的文本中添加一些asp.net linkbutton控件,如下所示:C# 使用c将asp.net LinkButton添加到文本#,c#,asp.net,tree,literals,asplinkbutton,C#,Asp.net,Tree,Literals,Asplinkbutton,我想在c#web表单应用程序的文本中添加一些asp.net linkbutton控件,如下所示: StringBuilder sb = new StringBuilder("<ul>"); sb.Append("<li>"); sb.AppendFormat("<asp:LinkButton runat='server' class='add-row' ID='BtnAdd' OnClick='BtnAdd_Click' CommandArgument='test'
StringBuilder sb = new StringBuilder("<ul>");
sb.Append("<li>");
sb.AppendFormat("<asp:LinkButton runat='server' class='add-row' ID='BtnAdd' OnClick='BtnAdd_Click' CommandArgument='test'>{0}</asp:LinkButton>", "Text on the link");
sb.Append("</li></ul>");
this.Literal.Text = sb.ToString();`
我尝试了这些,并且成功地将linkbutton添加到文本中。但是linkbutton没有转换成
我想使用
标记创建一棵树,其中叶子作为链接按钮。
如果有人能解释这个问题的解决方案,那将非常有帮助。正如Andrei所建议的那样,以这种方式使用链接按钮将不起作用
我在过去使用过类似的解决方案,为文本中的每个a标记创建一个查询参数,并重定向到当前页面或其他页面,然后从中提取查询参数
不过,我建议您首先尝试一下,看看是否有其他方法来完成您正在尝试的工作,因为文字解决方案最终会非常混乱,代码也非常繁重。正如Andrei所建议的那样,以这种方式使用链接按钮将不起作用
我在过去使用过类似的解决方案,为文本中的每个a标记创建一个查询参数,并重定向到当前页面或其他页面,然后从中提取查询参数
不过,我建议您首先尝试一下,看看是否有其他方法来完成您正在尝试的工作,因为文字解决方案最终会变得非常混乱和代码繁重。我认为中继器更适合您的目的
<ul>
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<li><asp:LinkButton ID="BtnAdd" runat="server" CssClass="add-row" OnClick="BtnAdd_Click">Text on the link</asp:LinkButton></li>
</ItemTemplate>
</asp:Repeater>
</ul>
我认为中继器更适合你的用途
<ul>
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<li><asp:LinkButton ID="BtnAdd" runat="server" CssClass="add-row" OnClick="BtnAdd_Click">Text on the link</asp:LinkButton></li>
</ItemTemplate>
</asp:Repeater>
</ul>
如果您有单个
如果您有单个
这里正确的方法是通过WebControl api,而不是通过模板。
您的方法可能仅适用于HTML内容。
您需要做的是处理像OnInit这样的页面生命周期事件,获取对容器控件(this.MyPanel)的引用,并将项动态添加到该控件的子属性(this.MyPanel.children.add(new…)
建议的中继器解决方案不适用于树形结构数据源,适用于列表…这里的正确方法是通过WebControl api,而不是通过模板。
您的方法可能仅适用于HTML内容。
您需要做的是处理像OnInit这样的页面生命周期事件,获取对容器控件(this.MyPanel)的引用,并将项动态添加到该控件的子属性(this.MyPanel.children.add(new…)
建议的Repeater解决方案不适用于树状结构数据源,但适用于列表…如果您必须只使用一次asp:LinkButton,请按此方式执行
和在.cs文件中
LinkButton1.Text=CurrentListItemAbsoluteUrl;
LinkButton1.CommandArgument=CurrentListItemAbsoluteUrl;
public void LinkButton1\u单击(对象发送者,CommandEventArgs e)
{
e、 CommandEventArgs//以获取参数
如果您必须只使用一次asp:LinkButton,请按此方法操作
和在.cs文件中
LinkButton1.Text=CurrentListItemAbsoluteUrl;
LinkButton1.CommandArgument=CurrentListItemAbsoluteUrl;
public void LinkButton1\u单击(对象发送者,CommandEventArgs e)
{
e、 CommandEventArgs//以获取参数
服务器端控件不能添加为文本控件的文本或子控件。添加到文本控件的任何内容都被视为文本字符串,这就是为什么它被称为文本。您需要找到其他方法来执行任何您想做的事情。服务器端控件不能添加为文本控件的文本或子控件。添加到Li的任何内容teral控件被视为文本字符串,这就是为什么它被称为literal。您需要找到其他方法来执行任何您想执行的操作
<asp:LinkButton ID="BtnAdd" runat="server" CssClass="add-row" OnCommand="BtnAdd_Command" CommandArgument='<%# Eval("value") %>'>
protected void BtnAdd_Command(object sender, CommandEventArgs e)
{
string commandArgument = e.CommandArgument.ToString();
}
BtnAdd.Id="";