Literal中的锚点控制

时间:2011-05-02 16:41:08

标签: c# asp.net vb.net

using System;

namespace WebApplication1
{
    public partial class _Default : System.Web.UI.Page
    {

        public void Download(object obj, EventArgs e)
        {
            Response.Write("abc");
        }

        protected void Page_Load(object sender, EventArgs e)
        {
            Literal1.Text = "<a id='anc' href ='#' runat='server' onserverclick='Download'>Click Me</a>";
            Response.Write(Literal1.Text);

        }
    }
}

 <div>
    <asp:Literal ID="Literal1" runat="server"></asp:Literal>
 </div>

我有上面的代码片段。我试图以下列方式将文本中的锚点绑定到函数:onserverclick =“Download”

但事件并未触发。要求是锚只通过文字呈现。

请帮忙。

4 个答案:

答案 0 :(得分:2)

虽然您的Literal1控件是服务器端控件,但将.Text值设置为代表服务器控件将不起作用。

也许使用asp LinkButton控件而不是文字

所以你的.aspx页面会有:

<asp:LinkButton ID="abc" runat="server" OnClick="Download" Text="Download" />

和.aspx.cs后面的代码类似:

protected void Page_Load(object sender, EventArgs e)
{

}

protected void Download(object sender, EventArgs e)
{
    Response.Write("abc");
}

答案 1 :(得分:1)

属性runat =“server”在客户端代码中没有意义(这是你在这里生成的)。您可能需要求助于调用Web服务。

答案 2 :(得分:0)

我们在文字之外使用锚标记。然后它工作正常

答案 3 :(得分:0)

如果您不想使用LinkBut​​ton,可以将您的Literal替换为您在Page_Load上添加的文本(不完全确定为什么要这样做?)。

然后运行AJAX Web请求以运行Download方法。