本帖最后由 pfworld 于 2009-07-08 19:41:43 编辑

解决方案 »

  1.   

    AJAX
    异步回调,在后台动态生成Datagridview的HTML源码
      

  2.   

    利用ajax 
    直接在后台拼成表格的html代码返回就可以 
    表格中的数据项点击 依然是根据参数用ajax取拼好的html显示就可以
      

  3.   

    是否有例?参考一下!ajax没有用过!!以前一直好WINFORM
      

  4.   

    要做的漂亮点,恐怕要依赖一下ajax。
    基本上就是上面说的。
      

  5.   

    updatePanel现成都帮你封装好了
      

  6.   

    不需要那么多的同一个gridview控件吧。
    可以自己组装一个DataTable然后绑定到控件上啊。
      

  7.   

    实现列表无刷新 都是在后台输出 html。
      

  8.   


    using AjaxPro;protected void Page_Load(object sender, EventArgs e)
    {
    AjaxPro.Utility.RegisterTypeForAjax(typeof(类名));//注册类型

    if (!IsPostBack)
    {
    Session["标识"] = this;
    }
    }#region 【获取数据(AJAX)】
    [AjaxPro.AjaxMethod(HttpSessionStateRequirement.ReadWrite)]
    public string GetGridView1(参数列表)
    {
    //……
    //从数据库获取数据
    //初始化GridView,可以在此更改GridView外观及行为
    //更改__doPostBack内容,使其指向前台javascript方法,如上下页操作或排序,最终将会调用fillGridView1方法进行GridView的填充

    StringBuilder sb = new StringBuilder();
      StringWriter stWriter = new StringWriter(sb);
      HtmlTextWriter htmlWriter = new HtmlTextWriter(stWriter);
      ((类名)Session["标识"]).GridView1.RenderControl(htmlWriter);//仅演示,session要提前验证提取
      
      return sb.ToString();
    }
    #endregion 【获取数据(AJAX)】//同理可以写出初始化其他GridView的方法
    <div id=DivGridView1>
        <asp:GridView ID="GridView1">
        ……
        </asp:GridView>
    </div><div id=DivGridView2>
        <asp:GridView ID="GridView2">
        ……
        </asp:GridView>
    </div>function fillGridView1(参数列表,如当前页数、过滤条件、排序字段等)
    {
      var strResponse = 类名.GetGridView1(参数列表)
    }//同理可以写出填充GridView2的方法//其他GridView排序、过滤等javascript方法
    //……
      

  9.   


    function fillGridView1(参数列表,如当前页数、过滤条件、排序字段等)
    {
      var strResponse = 类名.GetGridView1(参数列表)
      DivGridView1.innerHTML = strResponse;
    }//同理可以写出填充GridView2的方法//其他GridView排序、过滤等javascript方法
    //……
      

  10.   

    1.ajax,后台输出table
    2.ajax用updatepanel
      

  11.   

    意思差不多就这样
    javascript方法 通过ajax调用cs中的方法 在cs中再把前台javascript相关方法绑定到相关的操作中GridView的基本样式格式还是要在ASPX中定义好,在CS的ajax方法中基于这些再进行改动,这样比较省事一些。
      

  12.   

    AjaxPro.Utility.RegisterTypeForAjax(typeof(类名));//注册类型
    这个类名是什么? Ajax 没有用过!!不过可以尝试使用解决问题!!谢谢指点!!
      

  13.   

    使用AjaxPro吧:
    简单说明:
    添加AjaxPro.dll控件
    在.cs代码注册:AjaxPro.Utility.RegisterTypeForAjax(typeof(LinkService));
    LinkService是你要调用的方法所在的类
    在方法前面加[AjaxPro.AjaxMethod],当然也可以加其他,如命名空间等.
     [AjaxPro.AjaxMethod]
            public String GetList()
            {
                List<MagazineType> list = //取数据源
                tablebegin = "<table border=\"1\" cellpadding=\"1\" cellspacing=\"0\">";
                tableend = "</table>";
                StringBuilder sb = new StringBuilder();
                for (int i = 0; i < list.Count; i++)
                {
                    sb.Append("");//打印出要的table
                }
                contentlist = tablebegin + sb.ToString() + tableend;
                return contentlist;
            }然后在aspx页面里调用方法把动态生成的table写进去就可以了
    function getlist(){
       LinkService.GetList(function(message){
             if(message.error==null)
             {
                document.getElementById("contentlist").innerHTML=message.value;
             }
             else
             {
                 alert(message.error.Message)
             }
        })
    }
    window.onload=function(){
        getlist();
    }
    页面放一个div
    <div id="contentlist">
      

  14.   

    错误 1 类、结构或接口成员声明中的标记“(”无效 d:\My Documents\Visual Studio 2008\Projects\WebApplication1\WebApplication1\WebForm2.aspx.cs 20 44 WebApplication1
    错误 2 类、结构或接口成员声明中的标记“)”无效 d:\My Documents\Visual Studio 2008\Projects\WebApplication1\WebApplication1\WebForm2.aspx.cs 20 60 WebApplication1
    测试 AjaxPro.Utility.RegisterTypeForAjax(typeof(类名));//注册类型 
      

  15.   

    1.是否加了AjaxPro引用
    2.AjaxPro.Utility.RegisterTypeForAjax(typeof(类名));这句代码要放在方法里面
    3.确保你的类是可以访问的(public)
      

  16.   

    類名就是你的class名稱,CS中的類名是什么就註冊什么,這樣以後,才能在ASPX中通過 類名.方法() 的形式調用
      

  17.   


    你的類名應該是WebForm2吧。
      

  18.   

    updatepanel包住,trigger里写事件
      

  19.   

    没用过updatepanel,不知道updatepanel能否修改控件的外观及行为?比如将控件原来需要dopostback的方法指向javascript方法
      

  20.   

    用updatepanel控件就能实现,非常简单
      

  21.   

    function fillGridView1(参数列表,如当前页数、过滤条件、排序字段等)
    {
      var strResponse = 类名.GetGridView1(参数列表)
    }这个卸载页面那里? 如何执行? 还有如何填充Datagridview
      

  22.   

    这个是javascript方法function fillGridView1(参数列表,如当前页数、过滤条件、排序字段等)
    {
      var strResponse = 类名.GetGridView1(参数列表)
      DivGridView1.innerHTML = strResponse;
    }//同理可以写出填充GridView2的方法//其他GridView排序、过滤等javascript方法
    //……
      

  23.   


    那太感谢了!!以前都在做WINFORM,ASP.NET这个生的很!![email protected]
      

  24.   

    已经发邮件了附件列表:
    序号 附件名称 附件描述 备注
    1 USERADD.aspx 添加用户 是最简单的AJAXPRO应用,建议先看这个
    2 USERADD.aspx.cs
    3 FilePlayList.aspx 列表形式查看内容,并可进行相关操作 是涉及到GRIDVIEW的应用,有点小复杂,这个例子中我用了一些别的控件,你那边可能没有
    4 FilePlayList.aspx.cs
    5 AjaxPro.2.dll AJAXPRO的连接库
      

  25.   

    一般就那几个步骤:
    1.引用库
    2.在Page_Load注册类型
    3.在cs中,写AjaxPro的方法
    4.在aspx的javascript方法中调用此AjaxPro方法获取结果,将结果显示到页面中
      

  26.   

    建议先了解一下 ajax 技术的基本实现 再用控件 
      

  27.   

    这个我可能没有说清楚!!要想实现,根据条件搜索到的数据显示到Datagridview01中,点击Datagridview01其中的某一项数据,在当前页中显示Datagridview02,在点击Datagridview02中某一项数据,显示Datagridview03。想要这个效果!但是做的过程中发现,点击Datagridview01中数据后Datagridview02显示了,但是Datagridview01消失了,Datagridview02数据项点击后,Datagridview02消失了,Datagridview03显示。
      

  28.   

    這個一點也不複雜啊,用上面所說的完全可以實現,你說的邏輯用javascript實現就行了,數據通過AJAX獲取
      

  29.   

    一個DIV只放一個GridView要不就把關鍵代碼帖上來看看,LZ想要的功能定能實現,不用擔心這個
      

  30.   

    如果是想要父表子表的樣子
    那只能在AJAX方法返回內容前,進行套入,將GRIDVIEW一層層放入到父GRIDVIEW中,然後再回發。
      

  31.   

     <div>        <asp:Button ID="Button1" runat="server" Text="查询" Width="271px" />    </div>
        <br />
        <div id="Dgv1">
            <asp:DetailsView ID="DetailsView1" runat="server" Height="59px" Width="878px" BackColor="White"
                BorderColor="#999999" BorderStyle="None" BorderWidth="1px" CellPadding="3" GridLines="Vertical">
                <FooterStyle BackColor="#CCCCCC" ForeColor="Black" />
                <RowStyle BackColor="#EEEEEE" ForeColor="Black" />
                <PagerStyle BackColor="#999999" ForeColor="Black" HorizontalAlign="Center" />
                <HeaderStyle BackColor="#000084" Font-Bold="True" ForeColor="White" />
                <EditRowStyle BackColor="#008A8C" Font-Bold="True" ForeColor="White" />
                <AlternatingRowStyle BackColor="#DCDCDC" />
            </asp:DetailsView>
        </div>
        <br />
        <div id="Dgv2">
            <asp:DetailsView ID="DetailsView2" runat="server" Height="59px" Width="878px" BackColor="White"
                BorderColor="#999999" BorderStyle="None" BorderWidth="1px" CellPadding="3" GridLines="Vertical">
                <FooterStyle BackColor="#CCCCCC" ForeColor="Black" />
                <RowStyle BackColor="#EEEEEE" ForeColor="Black" />
                <PagerStyle BackColor="#999999" ForeColor="Black" HorizontalAlign="Center" />
                <HeaderStyle BackColor="#000084" Font-Bold="True" ForeColor="White" />
                <EditRowStyle BackColor="#008A8C" Font-Bold="True" ForeColor="White" />
                <AlternatingRowStyle BackColor="#DCDCDC" />
            </asp:DetailsView>
        </div>
        <br />
        <div id="Dgv3">
            <asp:DetailsView ID="DetailsView3" runat="server" Height="59px" Width="878px" BackColor="White"
                BorderColor="#999999" BorderStyle="None" BorderWidth="1px" CellPadding="3" GridLines="Vertical">
                <FooterStyle BackColor="#CCCCCC" ForeColor="Black" />
                <RowStyle BackColor="#EEEEEE" ForeColor="Black" />
                <PagerStyle BackColor="#999999" ForeColor="Black" HorizontalAlign="Center" />
                <HeaderStyle BackColor="#000084" Font-Bold="True" ForeColor="White" />
                <EditRowStyle BackColor="#008A8C" Font-Bold="True" ForeColor="White" />
                <AlternatingRowStyle BackColor="#DCDCDC" />
            </asp:DetailsView>
        </div>
    能否帮忙制作一个小DOME?
      

  32.   

    樓主是想GridView層層套在一起,還是一一排列開?
      

  33.   

    能貼下點擊Datagridview01的代碼嗎?
      

  34.   

    以及服務器端AJAX獲取GridView內容,客戶端填充GridView的代碼
      

  35.   

        <div id="Dgv1">
            <asp:GridView ID="GridView1" runat="server" CellPadding="4" ForeColor="#333333" GridLines="None"
                Height="157px" Width="874px">
                <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
                <RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
                <Columns>
                    <asp:TemplateField HeaderText="统计时间">
                        <ItemTemplate>
                            <a href="WebForm2.aspx?Time=<%# Eval("vehDetectionTime") %>">
                                <asp:Label ID="lblTime" runat="server" Font-Bold="True" Text='<%# Eval("vehDetectionTime") %>'></asp:Label>
                            </a>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:BoundField DataField="vehOverLong" HeaderText="统计长" />
                    <asp:BoundField DataField="vehOverWide" HeaderText="统计宽" />
                    <asp:BoundField DataField="vehOverHigh" HeaderText="统计高" />
                </Columns>
                <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
                <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
                <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
                <EditRowStyle BackColor="#999999" />
                <AlternatingRowStyle BackColor="White" ForeColor="#284775" />
            </asp:GridView>
        </div>
      

  36.   

    是通過點擊<a href="WebForm2.aspx?Time= <%# Eval("vehDetectionTime") %>"> 
                                <asp:Label ID="lblTime" runat="server" Font-Bold="True" Text=' <%# Eval("vehDetectionTime") %>'> </asp:Label> 
                            </a> 獲取的另外一個GridView的內容的嗎?
      

  37.   

    不是的,我是通过点击连接传参后,在page_load内判断,参数符合就执行Sql语句,传递数据到datagrid2中!
      

  38.   

    1 用Visual Studio 的AJAX Extensions控件(MSDN有专门文档介绍)
    2 第三方控件,如MagicAjax等
    3 自己写Ajax
      

  39.   

    再发一贴!http://topic.csdn.net/u/20090709/15/7ae75a23-b1d4-4264-b99a-d0e3f08f400e.html
      

  40.   

    用UpdatePanel根本就不需要额外的代码,微软都已经帮你做好了
      

  41.   


    回發了,所以就沒了,不能回發,需要用javascript方法替代這個操作,通javascript方法完成這個操作。
      

  42.   

    要把GridView中的這個連接操作,換成javascript方法+參數 調用後台ajax方法的方式完成
      

  43.   

    在回發gridview HTML代碼前,進行替換
      

  44.   

    暈 錯了 不用替換 直接給gridview的‘统计时间‘列賦個帶javascript方法及參數的值就行了
      

  45.   

    AJAX+用户控件 然后异步回调获取html,具体参考老赵的相关文章