jQuery EasyUI 记要

一、生成表格 GridView

    创建GridView有两种方式:

    1.以编程方式创建,指定datagrid属性即可(其它属性可查看demo或文档)

$('#tableView').datagrid({    
url: '../../Controller/RoleController.ashx?OperationType=role&page=1&rows=' + AdjustPageSize()
});

    2.在HTML标记上指定CSS class类,EasyUI会通过类名easyui-datagrid隐式创建

<table id="tableView" class="easyui-datagrid" singleselect="true" title="GridView"
idfield="RoleId" width="100%" height="auto" nowrap="false" striped="true" rownumbers="true"
pagination="true">
</table>

其二者不可重叠,否则会产生两次异步请求。

二、导出Excel,解决乱码

string filename = "角色信息.xls";
filename = HttpUtility.UrlEncode(filename, System.Text.Encoding.UTF8);
context.Response.ContentType = "application/vnd.ms-excel;charset=UTF-8";
context.Response.AddHeader("Content-Disposition", string.Format("attachment;filename={0}", filename));
context.Response.Clear();

 

三、ashx文件中使用Session

1、using System.Web.SessionState;

2、类实现IRequiresSessionState

public class DoAjax : IHttpHandler,IRequiresSessionState

{

}

完成以上两步就可以正常使用Session了。

 

四、ashx文件中使用Server.MapPath()

HttpContext.Current.Server.MapPath("")

 

五、单数据库 事务处理(非TransactionScope)

如果使用TransactionScope,会导致分布式事务被触发,见倒数第三位所述(来自stackoverflow.com)

而一个针对单数据库的建议可以查看这里(来自stackoverflow.com)

我自己的实现跟其建议差不多,且是有效的:

try
{
    if (dbContext.Connection.State == System.Data.ConnectionState.Closed)
    {
        dbContext.Connection.Open();
    }

    /*
        为了兼顾那些非EF操作,即采用直接拼Sql作数据库访问时,数据库链接需作一点转换:
        cmd.Connection = (dbContext.Connection.BeginTransaction as EntityConnection).StoreConnection;
     * 
     */
    using (DbTransaction ts = dbContext.Connection.BeginTransaction())
    {
        BaseRole _role = role;

        BaseSequnce sequnce = dbContext.BaseSequnces.SingleOrDefault(s => s.SequnceId == 10000011);
        sequnce.KeySequnce = sequnce.KeySequnce + 1;
        sequnce.SortReduction = sequnce.SortReduction - 1;
        dbContext.SaveChanges();

        sequnce = dbContext.BaseSequnces.SingleOrDefault(s => s.SequnceId == 10000011);
        _role.RoleId = sequnce.KeySequnce;
        _role.SortCode = sequnce.SortReduction;

        //最后一步
        dbContext.BaseRoles.AddObject(_role);
        dbContext.SaveChanges();
        ts.Commit();
    }
    return true;
}
catch
{
    return false;
}
finally
{
    if (dbContext.Connection.State == System.Data.ConnectionState.Open)
    {
        dbContext.Connection.Close();
    }
}
posted @ 2012-05-03 11:31  罗霄(Sto)  阅读(740)  评论(0编辑  收藏  举报