FineUI 官方论坛

标题: grid绑定问题 [打印本页]

作者: foreverjjj    时间: 2012-12-25 10:18
标题: grid绑定问题
当grid的window列更新数据后关闭window,刷新父窗体的grid,发现只能绑定BoundField的参数,TemplateField的参数则无法绑定,显示空白
作者: 吉吉﹑    时间: 2012-12-25 11:35
先调试一下呢
作者: foreverjjj    时间: 2012-12-26 01:18
断点跳进去了,但是还是不能显示,只能通过刷新整个页面显示,这样不好
作者: sanshi    时间: 2012-12-26 05:33
可以先自己调试下,应该是自己的代码问题,实在不行的话给个能运行的示例。。。
作者: foreverjjj    时间: 2012-12-26 06:53
写了一个demo实例,三石大哥看看,这个是父页面
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default16.aspx.cs" Inherits="Default16" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <extageManager ID="ageManager1" runat="server" />
        <ext:Grid ID="Grid1" runat="server" EnableCheckBoxSelect="true" EnableRowNumber="true"
            Title="Grid" OnRowDataBound="Grid1_DB" Height="200px">
            <Columns>
                <ext:BoundField HeaderText="头部1" DataField="col1" />
                <ext:BoundField HeaderText="头部2" DataField="col2" />
                <ext:TemplateField>
                    <ItemTemplate>
                        <extabel runat="server" ID="col3"></extabel>
                    </ItemTemplate>
                </ext:TemplateField>
                <ext:WindowField ColumnID="WinEdit" WindowID="Window1" HeaderText="编辑" Icon="Add"
                        ToolTip="编辑" DataIFrameUrlFormatString="window.aspx"
                         />
            </Columns>
        </ext:Grid>
        <ext:Window ID="Window1" Title="编辑" Popup="false" EnableIFrame="true" runat="server"
        CloseAction="HidePostBack" EnableConfirmOnClose="true" IFrameUrl="window.aspx"
        EnableMaximize="true" EnableResize="true"  Target="Top"
        IsModal="True" Width="760px" Height="500px" OnClose="Window1_Close">
    </ext:Window>
    </div>
    </form>
</body>
</html>

这个是父页面的代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using FineUI;

public partial class Default16 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            bind();
        }
    }

    private void bind()
    {
        Grid1.DataSource = createtestcls();
        Grid1.DataBind();
    }

    protected void Grid1_DB(object sender, GridRowEventArgs e)
    {
        testcls tt= e.DataItem as testcls;
        FineUI.Label ll = Grid1.Rows[e.RowIndex].FindControl("col3") as FineUI.Label;
        ll.Text = tt.col3;
    }

    private List<testcls> createtestcls()
    {
        List<testcls> List = new List<testcls>();
        for (int i = 0; i < 3; i++)
        {
            testcls t = new testcls();
            t.col1 = i.ToString();
            t.col2 = i.ToString() + i.ToString();
            t.col3 = i.ToString() + i.ToString()+t.ToString();
            List.Add(t);
        }
        return List;
    }

    protected void Window1_Close(object sender, EventArgs e)
    {
        bind();
    }
}


public class testcls
{

    public string col1 { get; set; }
    public string col2 { get; set; }
    public string col3 { get; set; }
}

这个是弹出页面
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="window.aspx.cs" Inherits="window" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <extageManager ID="ageManager1" runat="server" AutoSizePanelID="anelForm" />
        <extanel ID="anelForm" runat="server" EnableBackgroundColor="true" Layout="Row">
            <Items>
        <ext:Button ID="Button1" runat="server" Text="Button">
        </ext:Button>
            </Items>
        </extanel>

   
    </form>
</body>
</html>


这个是弹出页面的后台代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using FineUI;

public partial class window : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        Button1.OnClientClick = ActiveWindow.GetConfirmHidePostBackReference();
    }

}
弹出页面点击按钮关闭后,父窗体的templete里的字段没有绑定啊,求指导
作者: sanshi    时间: 2012-12-26 06:57
TemplateField 中目前只能放 Asp.Net 控件
作者: foreverjjj    时间: 2012-12-26 07:09
哦,原来如此,谢谢三石,没注意到这个{:soso_e113:}
作者: 破风    时间: 2012-12-27 02:13
sanshi 发表于 2012-12-26 05:33
可以先自己调试下,应该是自己的代码问题,实在不行的话给个能运行的示例。。。 ...

为什么我在grid重新添加一项,然后不刷新页面,再点击编辑就报X1错误,困扰很久了 求解答




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