FineUI 官方论坛

标题: 如何获取grid控件用户拖动后的列宽 [打印本页]

作者: mli    时间: 2013-8-24 09:27
标题: 如何获取grid控件用户拖动后的列宽
用户在拖动了grid控件列宽大小后,后台使用grid.columns[columnno].width得到的依然是初始控件时的列宽,而非用户拖动后的列宽,如何能获取到呢?

作者: 雨天不打伞    时间: 2016-5-10 13:21
本帖最后由 雨天不打伞 于 2016-5-10 13:25 编辑

通过隐藏字段传递列宽信息。利用客户端脚本获取调整后的列宽信息,把值保存在隐藏字段中。
1、创建隐藏字段 <f:HiddenField ID ="HdGridColWidth" runat="server"></f:HiddenField>
2、在窗体后面加入:
    <script type="text/javascript" language="javascript">

        var gridClientID = '<%= Grid1.ClientID %>';
        var HdGridColWidthID = '<%= HdGridColWidth.ClientID %>';

        // 点击[保存列宽]按钮
        function onColumnConfigClick(event) {
            var grid = F(gridClientID);
                        var myHdGridColWidth = F(HdGridColWidthID);
            var sWidth='';
            
            var mycolumns = grid.columns;
            for (var i = 0; i < mycolumns.length; i++) {
                sWidth = sWidth + mycolumns.text + ':' + mycolumns.width + ',';
            }
            
            myHdGridColWidth.setValue(sWidth);        // 将客户端列标题及列宽保存在隐藏字段中

            // 自定义回发
            __doPostBack('', 'grid_SAVECOLWIDTH');
        }
    </script>
3、代码中加入:
protected void Page_Load(object sender, EventArgs e)
{
        if (!IsPostBack)
        {

        }
        else
        {
                if (GetRequestEventArgument() == "grid_SAVECOLWIDTH")
                {
                        Alert.ShowInTop("保存列宽" + HdGridColWidth.Text);
                        //Alert.ShowInTop("保存列宽");
                }
        }
}





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