FineUI 官方论坛

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

作者: 信徒    时间: 2012-5-3 15:53
标题: grid 绑定问题
前台      
         <Rows>
                    <ext:FormRow ID="FormRow3" runat="server" ColumnWidths="1">
                        <Items>
                            <ext:Grid ID="grdResult" PageSize="20" ShowBorder="false" ShowHeader="false" AutoHeight="true"
                                AllowPaging="true" runat="server" EnableCheckBoxSelect="false" DataKeyNames="USERID"
                                IsDatabasePaging="true" EnableRowNumber="True"
                               >
                                <Columns>
                                    <ext:BoundField Width="150px" DataField="USERID" HeaderText="账号" />
                                    <ext:BoundField Width="150px" DataField="USERNAME" HeaderText="姓名" ExpandUnusedSpace="true" />
                                    <ext:BoundField Width="150px" DataField="DepartmentID" HeaderText="所属部门" />
                                    <ext:BoundField Width="150px" DataField="JobTitleID" HeaderText="用户职位" />
                                    <ext:BoundField Width="40px" DataField="STATUS" HeaderText="状态" />
                                    <ext:WindowField ColumnID="myWindowField" Width="40px" WindowID="UserWindow" HeaderText="编辑"
                                        Icon="TableEdit" ToolTip="编辑" DataTextFormatString="{0}" DataIFrameUrlFields="USERID"
                                        DataIFrameUrlFormatString="UserEdit.aspx?USER_ID={0}" DataWindowTitleField="USERNAME"
                                        DataWindowTitleFormatString="编辑 - {0}" />
                                    <extinkButtonField Width="40px" HeaderText="停用" CommandName="stop" Icon="Delete" ColumnID="lbfStop"
                                        ToolTip="停用"  />
                                </Columns>
                            </ext:Grid>
                        </Items>
                    </ext:FormRow>
                </Rows>

后台:
        protected void grdResult_RowDataBound(object sender, GridRowEventArgs e)
        {
            LinkButtonField lbf = grdResult.FindColumn("lbfStop") as LinkButtonField;
            
            DataRowView row = e.DataItem as DataRowView;
            if (row != null)
            {
                if (!e.Values[4].ToString().Equals("&nbsp;"))
                {
                    if (e.Values[4].ToString() == ((int)BaseEnum.UserStatus.Active).ToString())
                    {
                        lbf.Icon = Icon.Accept;
                    }
                    else
                    {
                        lbf.Icon = Icon.Delete;
                    }
                    e.Values[4] = BaseEnum.StatusList()[e.Values[4].ToString()].ToString();
                }
            }

        }
发现  LinkButtonField lbf = grdResult.FindColumn("lbfStop") as LinkButtonField;
取到的似乎是下一行的那个LinkButtonField  所以值都错位了,我该怎么解决呢?

作者: 信徒    时间: 2012-5-3 21:25
其实这个问题就是 RowDataBound 事件里 用 grdResult.FindColumn("lbfStop") as LinkButtonField 方法,取得的不是本行的 LinkButtonField  而是下一行的,难道没人遇到过?给的例子里都是写在Grid1_PreRowDataBound 事件里的
作者: sanshi    时间: 2012-5-5 16:06
信徒 发表于 2012-5-3 21:25
其实这个问题就是 RowDataBound 事件里 用 grdResult.FindColumn("lbfStop") as LinkButtonField 方法,取 ...

你看下示例:http://extasp.net/#/grid/grid_rowdatabound.aspx

Values数组的索引是从0开始的




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