【问题标题】:How to postback server by JavaScript Asp.net如何通过 JavaScript Asp.net 回发服务器
【发布时间】:2012-10-09 01:49:22
【问题描述】:
namespace KetBanBonPhuong.Controls.Default
{
     public partial class SugFriends : System.Web.UI.UserControl
    {
        private string Uid;

        protected void Page_Load(object sender, EventArgs e)
        {
            if (Request.Cookies["UId"] != null)
        {
            string value = Request.Cookies["UId"].Value;
            Uid = UserService.GetId_Cookie(value);
        }
        else
        {
            Uid = Session["Id"].ToString();
        }
        LoadListSuggest();
    }

    private void LoadListSuggest()
    {
        string str = "";
        List<RankByUser> list = new List<RankByUser>();
        list = RankByUserService.GetListRank(Uid);
        foreach (RankByUser rank in list)
        {
            str += "<li><div class=\"sug_acc\">"
                + "<a href=\"/" + rank.Link + ".aspx\"><img src=\"" + rank.Avatar + "\" alt=\"avatar\"/></a>"
                + "<a href=\"/" + rank.Link + ".aspx\" class=\"sug_name\">" + rank.LastName + " " + rank.FirstName + "</a>"
                + "</div>"
                + "<div class=\"rank\">"
                + "<a href=\"#\" title=\"Xem chi tiết\" class=\"num\">rank: " + rank.Rank + "</a>"
                + "<a href=\"#\" class=\"button mycoblue\">Kết bạn</a>"
                + "</div></li>";
        }
            ltrListSug.Text = str;
        }
    }
}`

这是一个用户控件SugFriends.ascx被添加到Default.Master

当我点击"a.button"回发事件到服务器时?(我想向数据库插入数据,我使用了Sql server)

怎么做?标记一个事件onclick'喜欢'LinkButton: Onclick()

感谢您的帮助!我找到了解决这个问题的方法!我对每个标签 a 使用 Ajax onclick,事件发布 Ajax.aspx,在这里我可以使用数据库编写代码!

【问题讨论】:

  • 不要那样做。相反,使用带有中继器的服务器端控件。
  • 你有一个 XSS 漏洞。
  • @SLaks 我相信你的评论,但你能进一步扩展吗?
  • @SLaks XSS 漏洞。这种方法如何易受攻击?
  • @danyim:创建一个名字为&lt;script&gt;alert('XSS')&lt;/script&gt;的帐户

标签: c# asp.net postback


【解决方案1】:

onclick="(javascript:__doPostBack('','');" 属性添加到&lt;a&gt; 标记以通过Javascript 执行回发。像这样:

            + "<a href=\"#\" class=\"button mycoblue\" onclick=\"(javascript:__doPostBack('','');\">Kết bạn</a>"

More details here


回复评论:

尝试在页面上创建一个按钮 &lt;asp:Button ID="btnPlaceHolder" Visible="False" runat="server" /&gt; 然后按照我在此解决方案中所说的操作,而是使用 __doPostBack('&lt;%=btnPlaceHolder.UniqueID %&gt;', '')

从那里,您可以使用方法块 Private Sub btnPlaceHolder_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnPlaceHolder.Click 在回发时运行你想要的代码。

【讨论】:

  • 关于代码 C#,我可以在其中为 onclick() 编写 LinkBut​​ton protected void btn_Click(object sender, EventArgs e) {code here}
  • 更新了我的解决方案以回答您的评论。
  • 问题是我有很多这样的按钮(在 foreach 循环中标记 a),我不能全部通过处理。
猜你喜欢
  • 2011-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-15
  • 2014-11-20
  • 2012-11-19
  • 1970-01-01
相关资源
最近更新 更多