C# 如何通过div的innerhtml从Dynamicly生成的html按钮访问服务器端方法

C# 如何通过div的innerhtml从Dynamicly生成的html按钮访问服务器端方法,c#,asp.net,C#,Asp.net,我想从一个html按钮访问一个c方法,该按钮是由div的innerhtml动态生成的 代码 } 我想从html按钮访问getdata方法..help.plz我想这样添加一个按钮 System.Web.UI.WebControls.Button btnSubmit = new System.Web.UI.WebControls.Button(); btnSubmit.ID = "btnSubmit"; btnSubmit.Text = "Click Here"; btnSubmit.Click +

我想从一个html按钮访问一个c方法,该按钮是由div的innerhtml动态生成的

代码

}


我想从html按钮访问getdata方法..help.plz

我想这样添加一个按钮

System.Web.UI.WebControls.Button btnSubmit = new System.Web.UI.WebControls.Button();
btnSubmit.ID = "btnSubmit";
btnSubmit.Text = "Click Here";
btnSubmit.Click += getdata(); //wire up event

//assuming, TextPreview is a Panel or someting
TextPreview.Controls.Add(btnSubmit);
方法:

protected void getdata(object sender, System.EventArgs e)
{
    Response.Write("clicked.");
}

如果不在服务器上注册服务器端函数,我们不能直接从客户端调用服务器端函数,请参阅下面的@fubo answer,如果可以的话,这是一种安全威胁。任何人都可以通过向网页添加原始html从浏览器调用任何函数,就像您的案例一样

但是,我们可以进行回发,在页面加载中,我们可以验证输入按钮以调用所需的方法

  protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                testdiv.InnerHtml = @"<input type=""button"" id=""btnSubmit"" value = ""Click Here"" runat = ""server"" onclick=""__doPostBack('btnSubmit','')""/> ";
            }
            else
            {
                var eventTarget = Request.Form["__EVENTTARGET"].ToString();
                if (eventTarget == "btnSubmit")
                {
                    getdata();
                }
            }
        }

        public string getdata() {
            Response.Write("clicked.");
        }

错误是什么,您是否正确使用getdata名称?错误是,如果我单击该按钮..什么都不会发生..如果我直接使用html按钮并在ServerClick='getdata'上写入,它会工作..但是如果我通过divid.innerhtml生成一个按钮..那时候它不工作。不,兄弟。我的问题是,我想从动态生成的html按钮调用一个c方法。
  protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                testdiv.InnerHtml = @"<input type=""button"" id=""btnSubmit"" value = ""Click Here"" runat = ""server"" onclick=""__doPostBack('btnSubmit','')""/> ";
            }
            else
            {
                var eventTarget = Request.Form["__EVENTTARGET"].ToString();
                if (eventTarget == "btnSubmit")
                {
                    getdata();
                }
            }
        }

        public string getdata() {
            Response.Write("clicked.");
        }