FineUI 官方论坛

标题: 两个grid同时绑定时,会出现其中一个无法绑定 [打印本页]

作者: rao    时间: 2014-1-3 10:53
标题: 两个grid同时绑定时,会出现其中一个无法绑定
DataTable dt;
。。。(省略dt赋值代码)
Grid2.DataSource = dt;
Grid2.DataBind();  

Grid1.DataSource = dt;
Grid1.DataBind();  

一个页面有两个Grid,分别是Grid1、Grid2。都绑定某DataTable。
结果就是后绑定的Grid1绑定正常,Grid2一片空白。
不知是否是因为整段代码只产生一次回发, 而fineui只接受了后一次,造成 Grid2无法绑定。怎样可以解决呢?

作者: 甘桂    时间: 2014-1-3 11:02
我都绑定了三个都没有出现过这样的情况.
作者: rao    时间: 2014-1-3 12:01
甘桂 发表于 2014-1-3 11:02
我都绑定了三个都没有出现过这样的情况.

        我用直接绑定确实是可以的,但是我需要在表grid1双击产生事件,改变两个表。结果就无法更新下表。
前台代码:
<body>
    <form id="form1" runat="server">
    <extageManager ID="ageManager1" runat="server" FormLabelWidth="60" Theme="Blue" />     

<extanel ID="Form2" ShowHeader="false" runat="server" Height="750px" BoxConfigChildMargin="0 15 0 0"
         Title="Form" BoxConfigAlign="Stretch" Layout="VBox"><Items>

            <ext:Grid ID="Grid1" Title="Grid1" AllowSorting="true"
            ShowGridHeader="True" Height="300" runat="server"   ShowBorder="true"
             ShowHeader="True"   AutoPostBack="True"
             EnableRowDoubleClick="True" OnRowDoubleClick="Grid1_RowClick">
           <Columns>

           <ext:BoundField DataField="编号" SortField="编号" HeaderText="编号" Width="100px" ColumnID="编号" />
          </Columns></ext:Grid>

          <ext:Grid ID="Grid2" Title="Grid2"  ShowGridHeader="True" runat="server" Height="300"   AutoPostBack="True" ShowBorder="true" ShowHeader="true" >
           <Columns>
              <ext:BoundField DataField="编号" SortField="编号" HeaderText="编号" Width="100px" ColumnID="编号"/>
           </Columns> </ext:Grid>
    </Items>  </extanel>   
    </form>
</body>
后台:
protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                DataTable dt;
                dt = new DataTable("Table_AX");
                dt.Columns.Add("编号");
                DataRow dr;
                dr = dt.NewRow();
                dr["编号"] = "aa";
                dt.Rows.Add(dr);
                              
                Grid2.DataSource = dt;
                Grid2.DataBind();
                Grid1.DataSource = dt;
                Grid1.DataBind();
            }

        }

        protected void Grid1_RowClick(object sender, FineUI.GridRowClickEventArgs e)
        {
            DataTable dt;
            dt = new DataTable("Table_AX");
            dt.Columns.Add("编号");
            DataRow dr;
            dr = dt.NewRow();
            dr["编号"] = "kkk";
            dt.Rows.Add(dr);

            Grid1.DataSource = dt;
            Grid1.DataBind();
            Grid2.DataSource = dt;
            Grid2.DataBind();
        }
作者: 甘桂    时间: 2014-1-3 14:51
AutoPostBack="True"
要这个做什么?GRID2_ROWCLICK事件绑定前先清掉原来的数据,再绑定.
作者: rao    时间: 2014-1-3 16:07
甘桂 发表于 2014-1-3 14:51
AutoPostBack="True"
要这个做什么?GRID2_ROWCLICK事件绑定前先清掉原来的数据,再绑定. ...

AutoPostBack="True" 实际的表里,有个用来录入的模板框,需要用到的。去掉也还是不能刷新表2.
发现表grid1去掉AllowSorting="true" ,不使用排序。就可以正常刷新grid2了。
作者: 甘桂    时间: 2014-1-6 11:45
数据源里没有排序.这里就不要把他打开了.




欢迎光临 FineUI 官方论坛 (https://fineui.com/BBS/) Powered by Discuz! X3.4