比如:我在设计界面中给GridView1加了几个字段,但源界面里面不会同步更新。
在vs2005中正常,vs2008打了sp1。

解决方案 »

  1.   

    Ajax的本意是想实现局部刷新,你现在倒好,估计一个页面也就一个GridView,95%的局部都刷新了,还不如不用AJAX。
      

  2.   

    @zhoufoxcn,呵,何止是95%, 
    <html>
    <head>
    <title>..</title>
    <script src="..js" />
    <link href="..css" />
    </head>
    <body>
    <form>
    <div>
      <asp:scriptmanager />
      <asp:updatepanel>
        <contenttemplate><!-- 这三个table至少是占了页面的95.1% -->
        <table id="控制按钮条">..</table>
        <table id="编辑控件区">..</table>
        <table id="网格">..</table>
        </contenttemplate>
      </asp:updatepanel>
    </div>
    </form>
    </body>
    </html>
      

  3.   

    同意1楼的观点,完全可以在客户端生成表格。先回到这个问题上来,因为实际上是这样的 ajax 将前台控件的名称和值取出来,在后台发送请求到服务器段,服务器端收到数据以后,将控件名称和值解析出来,然后传递给 DataView 控件,DataView 再调用 data provider 中的方法,将数据更新到数据库中。关于你的问题,我们要检查几个地方,首先是页面上的控件是否可以传递到后台,DataView 是否能找到这些控件,是否可以将控件中的值更新到自己的数据结构中,还要检查 data provider 中更新的时候是否可以取到这些值,然后检查更新数据的 sql 有没有问题(因为如果你选择使用安全更新的话,它会将原先的值做到 where 里面,这些原先的值如果不正确的话也没有办法更新)。只是一个思路,楼主遇到的情况应该是有特殊的原因导致的,仔细检查一下代码和控件吧。
      

  4.   

    还有,楼主确有滥用 update panel 的嫌疑
      

  5.   

    @phoenix8343_cn
    这问题还在界面的设计阶段,
    <form id="form1" runat="server">
        <div>
                <asp:GridView ID="sgvList" runat='server' AllowPaging="True" 
                    AllowSorting="True" AutoGenerateColumns="False"> <!--此处OK, 跟着属性编辑器变了 -->
                    <Columns><!-- 这是系统根据设计器自动生成的 -->
                        <asp:BoundField />
                        <asp:BoundField />
                        <asp:BoundField />
                    </Columns>
                    <PagerSettings Mode="NumericFirstLast" PageButtonCount="5" Position="Top" />
                </asp:GridView>
            <asp:UpdatePanel ID="UpdatePanel1" runat="server">
            <ContentTemplate>
                <asp:GridView ID="GridView1" runat="server"> <!--此处不会跟着属性编辑器变 -->
                   <!-- 设计器中改了属性、也加了字段,但这里依然是空空的 -->
                </asp:GridView>        <table width="100%" border="1">
                <tr>
                    <td>
      

  6.   


    我是依葫芦画瓢,访照人家用vs2005开发的例子。至于滥用ajax,只有学会了才能改进。
      

  7.   

    大家没遇到这问题?还是都没把GridView控件放到UpdatePanel中?
      

  8.   

    没遇到过。我几乎,没有用过GridView去开发
      

  9.   

    额。。这个。。为什么要纠结在这个问题上呢。就算在updatePanel里面没有出来,在外面设置好了以后,在copy到updatePanel里面就好了嘛
      

  10.   

    呵呵,误会你的意思了,这个肯定是VS的问题,你先检查一下其他的标签有没有问题(如果实在不知道怎么回事把 UpdatePanel 去掉,设计好 DataGrid 以后再加回来)
      

  11.   

    不管是什么原因,看来只能是顺者昌。
    ------------------------------------
    #547楼[楼主]   回复  引用  查看     
    2010-03-08 12:19 by webabcd       
    @方路
    如果是这样的话,就只能认定是IDE的bug了
    建议,直接在“源”视图编码
    #548楼 查看  删除  修改 
    2010-03-08 12:26 by 方路       
    嗯,应该是IDE的bug。
    奇怪的是,只有#537楼的scate一样见到此问题?难道很少人用ajax?现在把SmartGridView放到updatepanel外面了。
    当然也可以在外面编辑好再剪到里边,只是修改的时候剪来剪去很麻烦。#549楼[楼主]   回复  引用  查看     
    2010-03-08 13:11 by webabcd       
    @方路
    呵呵,我原来倒是挺常用的
    不过只在“源”视图里写代码,基本不会在“设计”视图里开发