20190421asp.netajax与jquery和bootstrap的无刷新完美实现

设计代码和后台代码中重要部分加粗和深色以及字号加大。

设计前台代码:

<%@ Page Title="添加/修改商家" Language="C#" MasterPageFile="~/Site_cg007.Master" AutoEventWireup="true"

CodeBehind="web_cg007.aspx.cs" Inherits="jfydxfjz.web_cg007" EnableEventValidation="false" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<meta http-equiv="X-UA-Compatible" content="ie=edge">

<title>开发者</title>

<script type="text/javascript" src="scripts/bootstrap_v30/jquery/jquery-

1.8.3.min.js"></script>

<script type="text/javascript" src="scripts/layer/layer.js"></script>

<script type="text/javascript" src="scripts/bootstrap_v30/bootstrap/js/bootstrap.min.js"></script>

<link href="StyleSheet_dn.css" rel="stylesheet" type="text/css" />

<link href="scripts/bootstrap_v30/bootstrap/css/bootstrap.css" rel="stylesheet" type="text/css" />

<style type="text/css">

body{color:#686868;}

@media all and (max-width:768px){

p{font-size:12px;}

h2{font-size:16px;}

h3{font-size:14px;}

li{font-size:14px;margin-left:30px;}

.myimg{width:50%;}

}

/*模态窗口取消背景变暗的效果

.modal-backdrop-zrp

{

opacity: 0 !important;

filter: alpha(opacity=0) !important;

}

*/

</style>

</asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">

<asp:ScriptManager ID="ScriptManager1" runat="server">

</asp:ScriptManager>

<div class="container">

<div class="row">

<div class="col-md-4 col-xl-12 text-center">

<asp:UpdateProgress ID="UpdateProgress_gly" runat="server" AssociatedUpdatePanelID="UpdatePanel_sjgl">

<ProgressTemplate><asp:Image ID="Image_gly"

CssClass="myimg" runat="server" ImageUrl="~/images/progress.gif" /></ProgressTemplate>

</asp:UpdateProgress>

</div>

</div>

</div>

  <asp:UpdatePanel ID="UpdatePanel_sjgl" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="false">

<ContentTemplate>

<div class="container">

<center>

<table class="nav-justified">

<tr>

<td style="text-align:left;">

<input type="text" runat="server" id="tbx_kfz_sjqq" placeholder="商家名称或QQ"   />

</td>

<td>

<asp:Button ID="btn_kfz_cxsjqq" runat="server"  Text="查询" CssClass="btn_dn" OnClick="btn_kfz_cxsjqq_Click"  />

</td>

<td>

<button class="btn-primary" data-toggle="modal" data-target="#tjsjmodal" id="btn_html_tj">添加</button>

</td>

<td>

<asp:Button ID="btn_kfz_tjgly" runat="server"  Text="添加管理员"  CssClass="btn_dn" OnClick="btn_kfz_tjgly_Click"  />

</td>

</tr>

<tr style="text-align:center">

<td colspan="4" style="padding-top:5px;text-align:center">

<!--采用自带的分页功能-->

<center>

<asp:GridView ID="GridView_sjgl" runat="server" Width="100%" AllowPaging="True" AutoGenerateColumns="False" CssClass="grid_dn" DataKeyNames="ID" HorizontalAlign="Center" OnRowCommand="GridView_sjgl_RowCommand" OnRowDataBound="GridView_sjgl_RowDataBound" OnPageIndexChanging="GridView_sjgl_PageIndexChanging">

<Columns>

<asp:BoundField DataField="ID" HeaderText="编号">

<HeaderStyle CssClass="header_dn" />

<ItemStyle HorizontalAlign="Left" />

</asp:BoundField>

<asp:BoundField DataField="Dwmc" HeaderText="商家">

<HeaderStyle CssClass="header_dn" />

<ItemStyle HorizontalAlign="Left" />

</asp:BoundField>

<asp:BoundField DataField="sqbh" HeaderText="授权令">

<HeaderStyle CssClass="header_dn" />

<ItemStyle HorizontalAlign="Left" />

</asp:BoundField>

<asp:TemplateField HeaderText="试用">

<HeaderStyle CssClass="header_dn" />

<ItemTemplate>

<asp:Button ID="btn_jk_sy" runat="server" Text="试用"   CssClass="btn"

CommandArgument='<%# Eval("ID") %>'  CommandName="cmn_jz_sy" />

</ItemTemplate>

</asp:TemplateField>

<asp:TemplateField HeaderText="注册">

<HeaderStyle CssClass="header_dn" />

<ItemTemplate>

<asp:Button ID="btn_jk_zc" runat="server" Text="注册"   CssClass="btn"

CommandArgument='<%# Eval("ID") %>'  CommandName="cmn_jz_zc" />

</ItemTemplate>

</asp:TemplateField>

</Columns>

<RowStyle CssClass="row_dn" />

<HeaderStyle CssClass="header_dn" />

<PagerSettings  FirstPageText="首页" LastPageText="尾页" Mode="NextPreviousFirstLast" NextPageText="下页" PreviousPageText="上页" />

<PagerStyle HorizontalAlign="Center" />

<SelectedRowStyle CssClass="selectrow_dn" />

</asp:GridView>

</center>

</td>

</tr>

</table>

</center>

</div>

 <!--添加商家弹出窗口:#tjsjmodal-->

            <div id="tjsjmodal" class="modal fade bs-example-modal-sm" data-backdrop="static">

<div class="modal-dialog modal-sm">

<div class="modal-content">

<div class="modal-header">

<button class="close" data-dismiss="modal">×</button>

<h4 class="modal-title">添加商家</h4>

</div>

<div class="modal-body">

<div class="form-group">

商家名称

<input type="text" runat="server" id="tbx_sjmc" placeholder="输入商家名称"  />

</div>

<div class="form-group">

授权口令

<input type="text" runat="server" id="tbx_sqkl" placeholder="输入或者空白" />

</div>

<div class="form-group">

联 系 QQ

<input type="text" runat="server" id="tbx_lxqq" placeholder="输入QQ号" />

</div>

<div class="form-group">

<asp:Label ID="lbl_ts" runat="server" ForeColor="Red" Font-Size="Large" />

</div>

</div>

<div class="modal-footer">

<button class="btn btn-default" data-dismiss="modal">关闭</button>

<asp:Button ID="btn_gb" CssClass="btn" Text="关闭" runat="server" OnClick="btn_gb_Click" Visible="false" />

<asp:Button ID="btn_tjsj" CssClass="btn" Text="添加" runat="server" OnClick="btn_tjsj_Click" />

</div>

</div>

</div>

</div>

</ContentTemplate>

<Triggers>

</Triggers>

</asp:UpdatePanel>

</asp:Content>

后台代码:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Data;

using System.Data.SqlClient;

namespace jfydxfjz

{

public partial class web_cg007 : System.Web.UI.Page

{

private jf_cyclxfjzEntities sjklj = new jf_cyclxfjzEntities();//数据库连接

private webncxk_class gj = new webncxk_class();//加解密工具

protected void Page_Load(object sender, EventArgs e)

{

//加入用户登录认证判断---处理中

cy_kfz db_kfz = Session["E1DAD727864"] as cy_kfz;

if (db_kfz == null) //不是开发者

{

this.Response.Redirect("~/Default.aspx");

}

if (!Page.IsPostBack) //数据控件绑定数据,必须放入这里,不然每次对数据控件的操作都无效

{

this.GridView_sjgl.DataSource = sjklj.cy_sqdw.OrderByDescending(aa => aa.ID);

this.GridView_sjgl.DataBind();

}

}

protected void GridView_sjgl_RowCommand(object sender, GridViewCommandEventArgs e)

{

try

{

if (e.CommandName == "cmn_jz_sy") //单击了试用按钮

{

int id = int.Parse(e.CommandArgument.ToString());

//定位记录

var cxsy = from aa in sjklj.cy_sqdw

where aa.ID == id

select aa;

//授权口令生成器

//生成随机试用口令

Random sjs = new Random(DateTime.Now.Year + DateTime.Now.Month + DateTime.Now.Day + DateTime.Now.Hour + DateTime.Now.Minute +

DateTime.Now.Second + DateTime.Now.Millisecond + 20316);

int scsjs = sjs.Next(10000, 99999);

string sqkl = "a" + scsjs.ToString();//试用口令

//没有加密的口令:

string ywkl=sqkl;

sqkl = webncxk_class.Encrypt(sqkl, webncxk_class.salt, webncxk_class.jmmy);//加密,自动生成的

if (string.IsNullOrWhiteSpace(cxsy.First().sqbh))//没有加入试用口令,正式使用默认30年

{

cxsy.First().sqbh = sqkl;

sjklj.SaveChanges();

//重新绑定

(e.CommandSource as Button).Text = ywkl;

this.UpdatePanel_sjgl.Update();//有条件更新,而且子控件

// aspnetajaxjavascript.layermsg(this.UpdatePanel_sjgl, "顾客异步刷新");

return;

}

else

{

//对口令进行解密

string kl = cxsy.First().sqbh.Trim();

kl = gj.Decrypt(kl, webncxk_class.salt, webncxk_class.jmmy);

if (kl.Contains("a"))

{

this.UpdatePanel_sjgl.Update();//有条件更新,而且子控件

aspnetajaxjavascript.layermsg(this.UpdatePanel_sjgl, "已经是试用了");

return;

}

else

{

cxsy.First().sqbh = sqkl;

sjklj.SaveChanges();

//重新绑定

(e.CommandSource as Button).Text = ywkl;

this.UpdatePanel_sjgl.Update();//有条件更新,而且子控件

aspnetajaxjavascript.layermsg(this.UpdatePanel_sjgl, "加入试用成功!");

return;

}

}

}

//注册

if (e.CommandName == "cmn_jz_zc") //单击了注册

{

int id = int.Parse(e.CommandArgument.ToString());

//定位记录

var cxsy = from aa in sjklj.cy_sqdw

where aa.ID == id

select aa;

//授权口令生成器

//生成随机正式口令

Random sjs = new Random(DateTime.Now.Year + DateTime.Now.Month + DateTime.Now.Day + DateTime.Now.Hour + DateTime.Now.Minute +

DateTime.Now.Second + DateTime.Now.Millisecond + 20316);

int scsjs = sjs.Next(10000, 99999);

string sqkl = "b" + scsjs.ToString();//注册口令

//没有加密的口令:

string ywkl = sqkl;

sqkl = webncxk_class.Encrypt(sqkl, webncxk_class.salt, webncxk_class.jmmy);//加密,自动生成的

if (string.IsNullOrWhiteSpace(cxsy.First().sqbh))//没有加入正式口令,正式使用默认30年

{

cxsy.First().sqbh = sqkl;

sjklj.SaveChanges();

//重新绑定

(e.CommandSource as Button).Text = ywkl;

this.UpdatePanel_sjgl.Update();//有条件更新,而且子控件

// aspnetajaxjavascript.layermsg(this.UpdatePanel_sjgl, "顾客异步刷新");

return;

}

//对口令进行解密

string kl = cxsy.First().sqbh.Trim();

kl = gj.Decrypt(kl, webncxk_class.salt, webncxk_class.jmmy);

if (kl.Contains("b"))

{

this.UpdatePanel_sjgl.Update();//有条件更新,而且子控件

aspnetajaxjavascript.layermsg(this.UpdatePanel_sjgl, "已经注册成功!");

return;

}

else

{

cxsy.First().sqbh = sqkl;

cxsy.First().yxq = DateTime.Now.Year + 30;

sjklj.SaveChanges();

//重新绑定

(e.CommandSource as Button).Text = ywkl;

this.UpdatePanel_sjgl.Update();//有条件更新,而且子控件

// aspnetajaxjavascript.layermsg(this.UpdatePanel_sjgl, "顾客异步刷新");

return;

}

}

}

catch (Exception err)

{

this.UpdatePanel_sjgl.Update();//有条件更新,而且子控件

aspnetajaxjavascript.layermsg(this.UpdatePanel_sjgl, "错误:"+err.Message);

}

}

protected void btn_kfz_cxsjqq_Click(object sender, EventArgs e)

{

// this.UpdatePanel_sjgl.Update();

// aspnetajaxjavascript.layermsg(this.UpdatePanel_sjgl, "测试查询!");

try

{

string cxtj = this.tbx_kfz_sjqq.Value.Trim();

if (cxtj == string.Empty)

{

this.UpdatePanel_sjgl.Update();//有条件更新,而且子控件

aspnetajaxjavascript.layermsg(this.UpdatePanel_sjgl, "请输入学校名称或者QQ号!");

return;

}

var cxxx = (from aa in sjklj.cy_sqdw

where aa.Dwmc.Contains(cxtj) || aa.qq.Contains(cxtj)

select aa).OrderByDescending(bb => bb.ID);

this.GridView_sjgl.DataSource = cxxx;

this.GridView_sjgl.DataBind();

this.UpdatePanel_sjgl.Update();//有条件更新,而且子控件

}

catch

{

}

}

protected void GridView_sjgl_RowDataBound(object sender, GridViewRowEventArgs e)

{

if (e.Row.RowType == DataControlRowType.DataRow)

{

try

{

int id = int.Parse(this.GridView_sjgl.DataKeys[e.Row.RowIndex].Value.ToString());//获取主键

//获取加密的授权口令

string sqkl = sjklj.cy_sqdw.Where(aa => aa.ID == id).First().sqbh;

sqkl = gj.Decrypt(sqkl, webncxk_class.salt, webncxk_class.jmmy);//解密

// this.Gv_xx.Rows[e.Row.RowIndex].Cells[2].Text = sqkl;//出错,索引找不到

e.Row.Cells[2].Text = sqkl;

}

catch

{

}

}

}

protected void GridView_sjgl_PageIndexChanging(object sender, GridViewPageEventArgs e)

{

this.GridView_sjgl.PageIndex = e.NewPageIndex;

this.GridView_sjgl.DataSource = sjklj.cy_sqdw.OrderByDescending(aa => aa.ID);

this.GridView_sjgl.DataBind();

//刷新

this.UpdatePanel_sjgl.Update();

}

protected void btn_kfz_tjgly_Click(object sender, EventArgs e)

{

try

{

//123加密为初始密码

string jbmm = webncxk_class.Encrypt("123", webncxk_class.salt, webncxk_class.jmmy);

//查看管理员是否还没有添加,查找在管理员表中没有的xk_sqdw记录

var cxmygly = from aa in sjklj.cy_sqdw

where !sjklj.admin_user.Any(bb => bb.dwid == aa.ID)

select aa;//这个方法很不错

Random sjs = new Random(DateTime.Now.Year + DateTime.Now.Month + DateTime.Now.Day + DateTime.Now.Hour + DateTime.Now.Minute +

DateTime.Now.Second + DateTime.Now.Millisecond + 20316);

foreach (var kk in cxmygly)

{

int scsjs = sjs.Next(1000, 9999);

admin_user tj_gly = new admin_user

{

dwid = kk.ID,

Yhm =kk.ID.ToString()+"a"+scsjs.ToString(),//按照a分割出dwid

Mm = jbmm

};

sjklj.admin_user.AddObject(tj_gly);

}

sjklj.SaveChanges();

//layeriujq.Msg("管理员添加完成", "6", "3000", this.Page);

this.UpdatePanel_sjgl.Update();//有条件更新,而且子控件

aspnetajaxjavascript.layermsg(this.UpdatePanel_sjgl, "管理员添加完成!");

return;

}

catch

{

}

}

protected void btn_tjsj_Click(object sender, EventArgs e)

{

try

{

//只需要商家名称和QQ号

string sjmc = this.tbx_sjmc.Value.Trim();

string qq = this.tbx_lxqq.Value.Trim();

string sqxx = this.tbx_sqkl.Value.Trim();

//生成随机试用口令

Random sjs = new Random(DateTime.Now.Year + DateTime.Now.Month + DateTime.Now.Day + DateTime.Now.Hour + DateTime.Now.Minute +

DateTime.Now.Second + DateTime.Now.Millisecond + 20316);

int scsjs = sjs.Next(10000, 99999);

string sqkl = "a" + scsjs.ToString();//试用口令

sqkl = webncxk_class.Encrypt(sqkl, webncxk_class.salt, webncxk_class.jmmy);//加密,自动生成的

string sdsqkl = "";//人工生成的授权口令

if (sqxx != string.Empty)

{

sdsqkl = webncxk_class.Encrypt(sqxx, webncxk_class.salt, webncxk_class.jmmy);

}

if (sjmc == string.Empty || qq == string.Empty)

{

//layeriujq.Msg("学校名称或QQ不能为空", "2", "3000", this.Page);

// this.lbl_tj_xx_ts.Text = "商家名称或QQ不能为空";

//有条件更新,而且子控件

 this.UpdatePanel_sjgl.Update();

                   // aspnetajaxjavascript.layermsg(this.UpdatePanel_sjgl, "商家名称或QQ不能为空"); //两个弹窗,前者会消失

                    //aspnetajaxjavascript.Msg(this.UpdatePanel_sjgl, "商家名称或QQ不能为空", "2", "2000");//bootstrap模态与layer冲突

                     this.lbl_ts.Text = "商家名称或QQ不能为空";

                    ScriptManager.RegisterStartupScript(this.UpdatePanel_sjgl, this.UpdatePanel_sjgl.GetType(),

                       "updateScript", "$('.modal').modal();",true);//改为false,则不返回提示结果

                    //使用火狐浏览器完美实现,QQ浏览器也不错,谷歌浏览器的低版本则不能很好实现(高版本可以),需要重庆打开该页面(重定向)才可以

// System.Threading.Thread.Sleep(200);

//ScriptManager.RegisterStartupScript(this.UpdatePanel_sjgl, this.UpdatePanel_sjgl.GetType(),

//"updateScript", "$('#btn_html_tj').click();", true);//模态窗口消失后,200毫秒再自动点击

//ScriptManager.RegisterStartupScript(this.UpdatePanel_sjgl, this.UpdatePanel_sjgl.GetType(),

// "updateScript", "$('#tjsjmodal').modal('show');", true);

// aspnetajaxjavascript.Msg(this.UpdatePanel_sjgl, "商家名称或QQ不能为空", "2", "50");//bootstrap模态与layer冲突

// ScriptManager.RegisterStartupScript(this.UpdatePanel_sjgl, this.UpdatePanel_sjgl.GetType(),

// "updateScript", "$('#btn_html_tj').click();", true);//模态窗口消失后,200毫秒再自动点击

return;

}

//查找学校名称是否唯一

var cxxx = from aa in sjklj.cy_sqdw

where aa.Dwmc ==sjmc

select aa;

if (cxxx.Count() > 0)

{

//layeriujq.Msg("该学校名称已经存在", "2", "3000", this.Page);//另一个页面调用该提示无效,只能当前页面

// this.lbl_tj_xx_ts.Text = "该学校名称已经存在";

this.UpdatePanel_sjgl.Update();//有条件更新,而且子控件

aspnetajaxjavascript.layermsg(this.UpdatePanel_sjgl, "该商家名称已经存在");

return;

}

else //添加

{

if (sqxx == string.Empty) //自动生成

{

cy_sqdw tj_sqdw = new cy_sqdw

{

Dwmc = sjmc,

qq = qq,

sqbh = sqkl

};

sjklj.cy_sqdw.AddObject(tj_sqdw);

sjklj.SaveChanges();

// this.lbl_tj_xx_ts.Text = "添加试用学校成功!";

this.UpdatePanel_sjgl.Update();//有条件更新,而且子控件

aspnetajaxjavascript.layermsg(this.UpdatePanel_sjgl, "添加试用商家成功!");

}

else

{

cy_sqdw tj_sqdw = new cy_sqdw

{

Dwmc = sjmc,

qq = qq,

sqbh = sdsqkl

};

sjklj.cy_sqdw.AddObject(tj_sqdw);

sjklj.SaveChanges();

// this.lbl_tj_xx_ts.Text = "添加试用学校成功!";

this.UpdatePanel_sjgl.Update();//有条件更新,而且子控件

aspnetajaxjavascript.layermsg(this.UpdatePanel_sjgl, "添加试用商家成功!");

}

}

}

catch(Exception err)

{

this.UpdatePanel_sjgl.Update();//有条件更新,而且子控件

aspnetajaxjavascript.layermsg(this.UpdatePanel_sjgl, "错误:"+err.Message);

}

}

protected void btn_gb_Click(object sender, EventArgs e)

{

// this.UpdatePanel_sjgl.Update();//有条件更新,而且子控件

// ScriptManager.RegisterStartupScript(this.UpdatePanel_sjgl, this.UpdatePanel_sjgl.GetType(),

//  "updateScript", "$('#tjsjmodal').modal('hide');", true);

// this.Page_Load(null, null);//野蛮刷新,最下策

this.Response.Redirect("~/web_cg007.aspx");//重定向打开本页面

}

}

}

asp.netajax与jquery和bootstrap的无刷新完美实现的更多相关文章

  1. jQuery+php+ajax实现无刷新上传文件功能

    jQuery+php+ajax实现无刷新上传文件功能,还带有上传进度条动画效果,支持图片.视频等大文件上传. js代码 <script type='text/javascript' src='j ...

  2. jQuery+AJAX实现网页无刷新上传

    新年礼,提供简单.易套用的 jQuery AJAX上传示例及代码下载.后台对文件的上传及检查,以 C#/.NET Handler 处理 (可视需要改写成 Java 或 PHP). 有时做一个网站项目 ...

  3. C#&JQuery非缓存式无刷新临时存储数据之仿购物车功能

    感谢广大博问博友的帮助和共同研究讨论,终于实现了一个无缓存无刷新仿购物车的小功能: 一.实现效果简述: 有一种列表,是由双层Repeater嵌套,第一层用来显示类别,第二层用来显示类别下的商品数据, ...

  4. jQuery Pagination分页插件--无刷新

    源码:https://github.com/SeaLee02/FunctionModule/blob/master/UploadFiles/WebDemo/FenYE/FenYeAjax.aspx 代 ...

  5. 前台JS(Jquery)调用后台方法 无刷新级联菜单示例

    前台用AJAX直接调用后台方法,老有人发帖提问,没事做个示例 下面是做的一个前台用JQUERY,AJAX调用后台方法做的无刷新级联菜单 http://www.dtan.so CasMenu.aspx页 ...

  6. jquery ajax php+mysql 无刷新分页 详细实例

    最近在接触jquery和ajax,当前项目也会用到分页,为了用户体验更好一些,就准备用无刷新分页,这个demo很适合新手学习查看,写的比较清晰,话不多说,直接上代码吧. 首先是html页面,index ...

  7. 本篇文章主要是对jquery+ajax+C#实现无刷新操作数据库数据的简单实例进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助

    我们知道同步执行和异步执行的区别,为了更好的提高用户的体验,我们都会采用异步方式去处理一些问题,毕竟单线程的同步可能回造成卡死等现象,很不友好,所以可以使用ajax来完成用户的体验,现在我们就来说说如 ...

  8. asp.net中利用Jquery+Ajax+Json实现无刷新分页(二)

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="PageTest.aspx.cs ...

  9. ASP.NET MVC下Ajax.BeginForm方式无刷新提交表单

    有时候,不得不考虑到以下场景问题: 数据库表字段会频繁更改扩展,而流行的重业务的js框架过于依赖json数据接口,导致的问题是,数据库表更改 -> 数据接口更改 -> 前段框架逻辑更改.. ...

随机推荐

  1. ELK学习笔记之logstash安装logstash-filter-multiline(在线离线安装)

    0x00 概述 ELK-logstash在搬运日志的时候会出现多行日志,普通的搬运会造成保存到ES中单条单条,很丑,而且不方便读取,logstash-filter-multiline可以解决该问题 g ...

  2. Java基础面试题总结

    目录 索引 Java基础知识篇 Java web基础知识总结 Java集合篇常见问题 Java基础知识篇 面向对象和面向过程的区别 面向过程: 优点:性能比面向对象高,因为类调用时需要实例化,开销比较 ...

  3. es6 class中责任链模式与AOP结合

    责任链模式大家应该都清楚,比如JS中的冒泡,Java中的拦截器.过滤器,都运用到了责任链模式. 可以看我之前的文章介绍责任链的:https://www.cnblogs.com/wuguanglin/p ...

  4. Java学习笔记_ 数据库隔离级别和事务传播行为

    转自: https://blog.csdn.net/qq_38545713/article/details/79779265 一:数据库的事物隔离级别与传播行为总结:              很多人 ...

  5. MockMvc模拟对controller进行单元测试

    本文为博主原创,未经允许不得转载:  MockMvc实现了对Http请求的模拟,能够直接使用网络的形式,转换到Controller的调用,这样可以使得测试速度快.不依赖网络环境, 而且提供了一套验证的 ...

  6. 解决 ImportError: No module named _internal

    参考: My pip is broken. _internal module cannot be imported. #5253 解决 ImportError: No module named _in ...

  7. 工具类封装之--BaseController

    package cn.xxx.base; import cn.xxx.gecustomer.beans.GeCustomer; import cn.xxx.gecustomer.beans.GeCus ...

  8. 记 Arduino 之 Hello World 篇(Getting Started)

    本文仅为入门实验,甚至谈不上研究的程度.目的是:记录如何烧录程序到 Arduino 主板,以及通过一些简单例程,找到 Arduino 开发的感觉. 开发环境:Ardunio IDE(用于编译.上传运行 ...

  9. 【GO】【gdb】

    1 安装homebrew 参考 https://www.cnblogs.com/suren2017/p/9249803.html ([Ruby][环境搭建]macOS Sierra 10.12.6 + ...

  10. kali虚拟机添加共享文件夹

    1.保证安装了vmtools 2.在虚拟机本身设置共享文件夹,如图 其中选的这个文件夹就是宿主机里待共享的文件夹. 3,在kali里启用它: vmhgfs-fuse .host:[宿主机文件夹] /m ...