我把搜索功能做成一个用户空间(包括多个TextBox、一个Button),我把这个用户控件和一个DataGrid控件放在同一个页面中,想实现当点击用户控件里的Button时,把搜索的结果显示在DataGrid中。请问我该怎么做?
(如果不用用户控件而将这些Text和Button直接和DataGrid放在同一个页面上,或通过地址栏传值实现搜索功能的话,我能做到。)

解决方案 »

  1.   

    根据检索的数据重新邦定datagrid就可以了,可以把事件直接写道button的on_clicked事件中
      

  2.   

    dui 对按照一楼的操作就可以了!
      

  3.   

    我现在是Button在用户自定义控件里呀。把用户控件拖到页面中哪里有什么on_clicked?
    有没有源码来参考一下哦?
      

  4.   

    用户控件的按纽里面,写:
    Response.Redirect("Search.aspx?Title=" + Server.UrlEncode(SearchTitle.Text));
    在放置该datagrid的页面里写
    Title1 = Server.UrlDecode(Request.QueryString["Title"]);
    根据该查询值从数据库中取符合的数据绑定到datagrid显示就可以了。
      

  5.   

    在用户控件中定义一个属性:
    private string showPageURL;
    public string ShowPageURL   //显示查询结果属性
    {
        get{ return showPageURL;}
        set{ showPageURL = value; }
    }
    然后在Button按钮on_Click事件中:
      Response.Redirect(showPageURL + "?Search=" + this.TextBox.Text);如果要在一个新的页面显示查询的结果,指定ShowPageURL属性值为新的页面:
    <uc1:SearchControl id="SearchControl1" runat="server" ShowPageURL="WebForm1.aspx"></uc1:SearchControl>
    如果在本页显示查询结果:
    if(Request.QueryString["search"]!=null)
    {
        不为空所以显示查询内容
    }
      

  6.   

    由检索条件,得出Sql语句,然后用Sql语句重新邦定DataGrid
      

  7.   

    谢谢,谢谢。我就是要类似“yiyan625(太阳)”的做法。
    我仍然不希望通过地址栏传值,能实现么?加油!加油!!!
      

  8.   

    可以在用户控件中设置一个参数啊,类型为DataTable,检索数据库的代码也写在控件内,将检索出来的数据赋值给DataTable。
    在aspx中获取这个DataTable,再将它传给DataGrid,不就OK了吗?用户控件:
    <%@ Control Language="c#" %>
    //...html...包括多个TextBox、一个Button....
    <script runat="server">
      public DataTable mydata;  //这里定义了一个参数
      public void Page_Load()
      { ...检索代码,并将结果赋值给mydata... }
    </script>
    在aspx中:
    <%@ Register TagPrefix="UserControl" TagName="Seach" Src="XXX.ascx" %>
    <html>
    <body>
    <form runat="server" method="post">
    <UserControl:Seach id="myseach" runat="Server" />   //你的控件
    <asp:DataGrid id="viewdata" runat="server" />       //DataGrid控件
    </form>
    </body>
    <script Language="c#" runat="Server">
     public void Page_Load()
      {
         DataTable thisdata = myseach.mydata;           //取得用户控件的检索结果
         ........绑定thisdata到DataGrid控件.........
      }
    </script>
    </html>页面可能需要刷新才能看到结果,可以使用提交服务器端,或使用按钮...