none
如何在自定义asp.net控件中处理回传数据? RRS feed

  • 问题

  • 有一个服务器控件myForm,它显示一个输入框和一个submit按钮。我希望点击按钮时,在myForm中实现数据处理(即在MyForm中定义click事件并实现OnClick函数)而控件使用者不需要关心数据的处理。虽然ascx中可以实现,但是能在WebControl的继承类中实现吗?
    2009年6月18日 9:05

答案

全部回复

  • 你可以再MyForm的构造器或者Load中添加 this.Button1.Click+=Button1_Click;


    void Button1_Click(object sender,EventAgrs e)
    {}
    Denn ich gehor nur dir!坚持不懈!http://hi.baidu.com/1987raymond
    2009年6月18日 9:12
    版主
  • 这个方法可能不行,我的类中没有Button的实例。我把代码贴出了。

    public class BackData : WebControl, IPostBackDataHandler
        {
            // 声明Click事件委托
            private NameValueCollection posts = null;
            protected override HtmlTextWriterTag TagKey
            {
                get
                {
                    return HtmlTextWriterTag.Table;
                }
            }
            public bool LoadPostData(string postDataKey, NameValueCollection postCollection)
            {
                posts = postCollection;
                return true;
            }
            public void RaisePostDataChangedEvent()
            {
                string s = "<table>", temp = "<tr><td>{0}</td><td>{1}</td></tr>";
                if (posts == null) s = "NULL";
                else
                {
                    string[] nv;
                    string t;
                    for (int i = 0; i < posts.Count; i++)
                    {
                        nv = posts[i].Split('=');
                        t = String.Format(temp, nv[0], nv[1]);
                        s += t;
                    }
                    s += "</table>";
                }
                HttpContext.Current.Response.Write(s);
            }
            protected override void Render(HtmlTextWriter output)
            {
                output.WriteLine("<tr><td>postback</td><td><input type='text' name='post'/></td></tr>");
                output.WriteLine("<tr><td></td><td><input type=\"button\" name=\"" + this.UniqueID +
                   "\" Value=\"submit\" /></td></tr>");
            }
        }
    2009年6月18日 9:16
  • ASP.NET 复合控件


    知识改变命运,奋斗成就人生!
    2009年6月19日 1:54
    版主