Ext.Net常用方法

1、js(Ext)操作

Ext.Msg.alert('系统提示', '未连接血站,该功能暂时不能使用。');  
Ext.getCmp("id").getValue();
Ext.getCmp("id").focus();
Ext.getCmp("id").selectText();

2、后置类选择提示窗口

X.Msg.Confirm("系统提示", "确认保存复检信息?", new MessageBoxButtonsConfig
{
    Yes = new MessageBoxButtonConfig
{
    Handler = "Ext.net.DirectMethods.DoYes()",
    Text="是"
},
    No = new MessageBoxButtonConfig
{
    Handler = "Ext.net.DirectMethods.DoNo()",
    Text = "否"
}
}).Show();

3、GridPanel添加事件

方式一:

<SelectionModel>
    <ext:RowSelectionModel ID="RowSelectionModel1" runat="server">
        <Listeners>
            <RowSelect handler="alert(record.data.BAR_CODE);" />
        </Listeners>
    </ext:RowSelectionModel>
</SelectionModel>

方式二:

<Listeners>
    <DblClick Fn="OnGpRowClick" />
</Listeners>

<script type="text/javascript">
function OnGpRowClick(grid, rowIndex, e) {
    alert(GridPanel1.getSelectionModel().getSelected().data.DAY_ID);
}
</script>

4、GridPanel分组展示+汇总信息

<ext:GridPanel ID="GridPanel1" runat="server" Collapsible="false" Width="600" Height="350"
    AutoExpandColumn="OPERATE_NAME" Frame="true">
    <Store>
        <ext:Store ID="Store1" runat="server" GroupField="OPERATE_NAME">
            <Reader>
                <ext:JsonReader>
                    <Fields>
                        <ext:RecordField Name="OPERATE_NAME" />
                        <ext:RecordField Name="USAGE_AMOUNT" />
                        <ext:RecordField Name="DOCTOR_NAME" />
                        <ext:RecordField Name="DEPT_NAME" />
                        <ext:RecordField Name="USAGE_AMOUNT" />
                        <ext:RecordField Name="LISHU" />
                        <ext:RecordField Name="AVG_USAGE_AMOUNT" />
                        <ext:RecordField Name="AVG_USAGE_AMOUNT_TOP" />
                    </Fields>
                </ext:JsonReader>
            </Reader>
            <SortInfo Field="USAGE_AMOUNT" Direction="desc" />
        </ext:Store>
    </Store>
    <ColumnModel ID="ColumnModel1" runat="server">
        <Columns>
            <ext:Column ColumnID="OPERATE_NAME" Header="手术名称" DataIndex="OPERATE_NAME" Width="220" />
            <ext:GroupingSummaryColumn ColumnID="OPERATE_NAME" Header="手术名称"  DataIndex="OPERATE_NAME"
                Hideable="false" SummaryType="Count" Width="220">
                <SummaryRenderer Handler="return '总计';" />
            </ext:GroupingSummaryColumn>
            <ext:Column Header="医生" DataIndex="DOCTOR_NAME" Width="100" />
            <ext:Column Header="所在科室" DataIndex="DEPT_NAME" Width="140">
            </ext:Column>
            <ext:GroupingSummaryColumn ColumnID="LISHU" Header="例数" DataIndex="LISHU" Width="100"
                SummaryType="Sum">
                <SummaryRenderer Handler="return value+' 例';" />
                <Renderer Handler="return value+' 例';" />
            </ext:GroupingSummaryColumn>
            <ext:GroupingSummaryColumn Header="用血量" DataIndex="USAGE_AMOUNT" Width="100" SummaryType="Sum">
            <SummaryRenderer Handler="return value+' ml';" />
            <Renderer Handler="return value+' ml';" />
            </ext:GroupingSummaryColumn>
            <ext:Column Header="平均值" DataIndex="AVG_USAGE_AMOUNT" Width="100" />
            <ext:Column Header="排名" DataIndex="AVG_USAGE_AMOUNT_TOP" Width="80" />
        </Columns>
    </ColumnModel>
    <LoadMask ShowMask="true" />
    <SelectionModel>
        <ext:RowSelectionModel ID="RowSelectionModel1" runat="server" />
    </SelectionModel>
    <View>
        <ext:GroupingView ID="GroupingView1" HideGroupedColumn="true" runat="server" ForceFit="true"
            StartCollapsed="true" GroupTextTpl='<span id="ColorCode-{[values.rs[0].data.ColorCode]}"></span>{text} ({[values.rs.length]} {[values.rs.length > 1 ? "项" : "项"]})'
            EnableRowBody="true">
            <Listeners>
                <Refresh Fn="setGroupStyle" />
            </Listeners>
        </ext:GroupingView>
    </View>
    <Plugins>
        <ext:GroupingSummary ID="GroupingSummary1" runat="server">
            <Calculations>
                <ext:JFunction Name="totalCost" Handler="return v + (record.data.Estimate * record.data.Rate);" />
            </Calculations>
        </ext:GroupingSummary>
    </Plugins>
</ext:GridPanel>

 5、GridPanel动态绑定列

/// <summary>
/// 生成字段和列,并绑定数据源
/// </summary>
private void DynamicBindData(DataTable _rptData, GridPanel _gp, Store _store)
{
    //清除旧数据与记录集
    _store.Reader.Clear();
    _gp.SelectionModel.Clear();
    _gp.ColumnModel.Columns.Clear();
    //_store.Model.Clear();
    var _jsonReader = new JsonReader();
    foreach (DataColumn _dataColumn in _rptData.Columns)
    {
        //创建字段
        _jsonReader.Fields.Add(new RecordField(_dataColumn.ColumnName));
        //创建列
        var _column = new Column
        {
            Header = Server.HtmlEncode(_dataColumn.ColumnName),
            DataIndex = _dataColumn.ColumnName,
        };
        _gp.ColumnModel.Columns.Add(_column);
    }
    _store.Reader.Add(_jsonReader);
    _store.DataSource = _rptData.DefaultView;
    _store.DataBind();
    // 重绘【必须调用】
    _gp.Render();
}

 6、后台(.cs)文件常用方法

// GridPanel选中列后台操作
int nCount = 0;
RowSelectionModel sm = this.GridPanel1.SelectionModel.Primary as RowSelectionModel;
nCount = sm.SelectedRows.Count;
if (nCount == 0)
{
    X.Msg.Alert("系统提示", "请先选择要删除的记录!").Show();
    return;
}
foreach (SelectedRow row in sm.SelectedRows)
{
    string selectId = row.RecordID;
    // 业务处理...
}    

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Porschev[钟慰]的专栏

Asp.Net无刷新上传并裁剪头像

开发网站几乎都做过上传图片并截图,做个无刷新Asp.Net上传并截图示例 实现功能: 1.选择文件,自动上传并生成缩放图(上传带进度条),形成预览图 2.在预览...

51070
来自专栏更流畅、简洁的软件开发方式

分页解决方案 之 QuickPager的使用方法(PostBack分页、自动获取数据)

      适用范围:网站后台管理、OA、CRM、CMS等,从关系型数据库里提取数据,愿意使用Pager_SQL、DataAccessLibrary的情况。  ...

21450
来自专栏张善友的专栏

详细讲解Quartz.NET

     前言:8月份翻译了Quartz.NET的官方课程:开源的作业调度框架 - Quartz.NET, 有的朋友抱怨难用,确实,目前Qiartz.NET的最...

48360
来自专栏C# 编程

[C#]使用Costura.Fody将源DLL合并到目标EXE

本文为原创文章,如转载,请在网页明显位置标明原文名称、作者及网址,谢谢! 一、本文主要是使用Costura.Fody工具将源DLL合并到目标EXE,因此,需要...

34400
来自专栏技术博客

一步一步学Linq to sql(九):其它补充

5、现在就可以照常进行其它工作了。使用sqlmetal可以很方便的同步数据库与实体和映射文件。每次修改数据库结构,从dbml设计器上删除表、存储过程然后再重新添...

9520
来自专栏ZKEASOFT

纸壳CMS的插件加载机制

纸壳CMS是基于插件化设计的,可以通过扩展插件来实现不同的功能。如何通过插件来扩展,可以参考这篇文章:

12120
来自专栏游戏杂谈

Unity3D MonoBehaviour的生命周期(lifecycle)

官方的事件函数的执行顺序中有详解(Link:Execution Order of Event Functions)

15110
来自专栏逸鹏说道

微信扫码支付+Asp.Net MVC

这里的扫码支付指的是PC网站上面使用微信支付,也就是官方的模式二,网站是Asp.net MVC,整理如下。 一、准备工作 使用的微信API中的统一下单方法,关键...

67060
来自专栏菩提树下的杨过

利用message queue实现aspx与winform通信, 并附完整示例

先在本机(本文中的计算机名为jimmyibm)安装message queue(消息队列),别告诉我你不会安装.(就跟安装IIS差不多的) 安装好后,打开 "计算...

28180
来自专栏恰童鞋骚年

.NET Core微服务之基于MassTransit实现数据最终一致性(Part 1)

  关于数据一致性的文章,园子里已经有很多了,如果你还不了解,那么可以通过以下的几篇文章去快速地了解了解,有个感性认识即可。

12630

扫码关注云+社区

领取腾讯云代金券