1. 먼저 렌더링을 살펴보세요.
2.ext 코드
///
Ext.namespace('XQH. ExtJs.Frame');
XQH.ExtJs.Frame.RoleManage = function() {
this.init()
}
Ext.extend(XQH.ExtJs.Frame.RoleManage, Ext.util.Observable, {
init: function() {
//Form
addForm = new Ext.form.FormPanel({
id: 'addRoleForm',
width: 460 ,
높이: 250,
//스타일
bodyStyle: 'margin:5px 5px 5px 5px',
프레임: true,
xtype: 'filedset',
labelWidth: 60 ,
항목:
[
{
xtype: 'fieldset',
title: '문자 정보',
collapsible: true,
autoHeight: true,
autoWidth: true,
항목:
[
{
xtype: 'textfield',
name: 'RoleName',
fieldLabel: 'RoleName',
emptyText: ' 필수',
blankText: '역할 이름은 비워둘 수 없습니다.',
allowBlank: false,
maxLength: 10,
maxLengthText: '역할은 10자를 초과할 수 없습니다.',
anchor: '98%'
}
]
},
{
xtype: 'fieldset',
title: '문자 설명',
collapsible: true,
autoHeight: true,
autoWidth: true,
items:
[
{ html: '설명은 다음과 같습니다...' }
]
}
],
reader: new Ext.data.JsonReader({
root: 'data',
fields: [
{ name: 'RoleId', mapping: 'RoleId', type: 'int' } ,
{ 이름: 'RoleName', 매핑: 'RoleName', 유형: 'string' }
]
})
})
//새 사용자 창
addWin = new Ext.Window({
id: 'addRoleWin',
title: '새 역할 추가',
width: 480,
height: 210,
//배경 마스크
modal: true,
//크기 재설정
resizing: false,
//닫기 버튼을 클릭할 때 수행되는 동작
closeAction: 'hide',
plain: true,
buttonAlign: 'center',
items:addForm,
buttons:
[
{ text: 'Close', handler: function() { Ext.getCmp('addRoleWin' ).hide( ); } },
{ text: 'Submit', id: 'btnSubmit' }
]
})
//역할 이벤트 추가
function addRoleFunction() {
var submitButton = this;
submitButton.disable();
var userForm = Ext.getCmp("addRoleForm")
if (userForm.form.isValid()) {
userForm.form. doAction('submit', {
url: "http://www.cnblogs.com/Service/SystemService/RoleService.ashx?Method=AddRole",
메서드: 'post',
waitTitle: "잠시 기다려주세요",
waitMsg: '데이터 추가 중...',
success: function(form, action) {
submitButton.enable()
Ext.getCmp('roleGD') .store.reload();
userForm.ownerCt.hide();
},
failure: function(form, action) {
vartip = "New Failed!"; if (action.result.rspText != "")
tip = action.result.rspText
Ext.Msg.alert('tip',tip)
submitButton .enable(); >}
});
}
else {
submitButton.enable()
}
}//버튼 목록 클릭 이벤트
function btnAddClick () {
Ext.getCmp('addRoleForm').form.reset();
Ext.getCmp("addRoleWin").setTitle('역할 추가'); ").buttons[1].handler = addRoleFunction;
Ext.getCmp("addRoleWin").show();
};
//역할 이벤트 수정
function updateRoleFunction() {
var submitButton = this;
submitButton.disable();
var userForm = Ext.getCmp("addRoleForm")
var id = userForm.form.reader .jsonData.data[0]. RoleId;
if (userForm.form.isValid()) {
userForm.form.doAction('submit', {
url: 'http://www.cnblogs.com/Service/SystemService/ RoleService.ashx?Method=UpdateRoleById&RoleId=' id,
method: 'post',
//params:{},
waitTitle: "잠시 기다려 주십시오.",
waitMsg: '데이터를 저장하는 중입니다.. .',
성공: function(form, action) {
submitButton.enable()
Ext.getCmp('roleGD').store.reload(
userForm.ownerCt.hide) ();
},
failure: function(form, action) {
vartip = "편집 활동을 저장하지 못했습니다!";
if (action.result.text != "" & action.result.text != null)
tip = action.result.text;
Ext.Msg.alert('tip', 팁);
submitButton.enable();
}
else {
}
}; 🎜>//버튼 클릭 이벤트 수정
function btnUpdateClick() {
vargrid = Ext.getCmp('roleGD')
if (grid.getSelectionModel().getSelections()[0] = = 정의되지 않음) {
Ext.Msg.alert("Prompt", "수정할 행을 선택하십시오.")
}
else {
Ext.getCmp('addRoleWin').setTitle( '역할 수정');
Ext.getCmp("btnSubmit").handler = updateRoleFunction;
Ext.getCmp("addRoleForm").form.reset()
var roleId = Grid.getSelectionModel( ).getSelections()[0].data.RoleId;
var url = 'http://www.cnblogs.com/Service/SystemService/RoleService.ashx?Method=GetRoleById&roleId=' roleId; getCmp("addRoleWin").show();
Ext.getCmp("addRoleForm").load({
url: url,
waitTitle: "잠시 기다려주세요",
waitMsg: ' 로드 중 데이터...',
성공: function(form, action) {
},
failure: function(form, action) {
vartip = "제출 실패"
if (action.response.responseText != "")
tip = action.response.responseText;
Ext.Msg.alert('tip',tip)
}
}); >}
};
//역할 함수 삭제
function delRoleFunction() {
vargrid = Ext.getCmp('roleGD')
if (grid.getSelectionModel() .getSelections ()[0] == 정의되지 않음) {
Ext.Msg.alert("Prompt", "삭제할 문자를 선택하세요.");
}
else {
Ext.MessageBox . verify('Prompt', '선택한 역할을 삭제하시겠습니까? ', function(btn) {
if (btn == 'yes') {
var conn = new Ext.data.Connection()
conn.request
({
url : 'http://www.cnblogs.com/Service/SystemService/RoleService.ashx?Method=DeleteRoleById',
params: { Id: Grid.getSelectionModel().getSelections()[0].data.RoleId } ,
메서드: '포스트',
범위: this,
콜백: 함수(옵션, 성공, 응답) {
if (성공) {
Ext.getCmp('roleGD') .store.reload();
}
else {
Ext.MessageBox.alert("프롬프트", "삭제 실패!")
}
}
});
}
})
}
};
//Toolbar
toolBar = new Ext.Toolbar({
항목:
[
{ text : '추가', id: 'btnAdd' },
'-',
{ text: '수정', id: 'btnUpdate' },
'-',
{ text: ' 삭제', handler:delRoleFunction }
]
});
//추가 버튼
var addUserBtn = Ext.getCmp('btnAdd')
addUserBtn.on(' 클릭', btnAddClick);
//수정 버튼
var btnUpdate = Ext.getCmp('btnUpdate');
btnUpdate.on('click', btnUpdateClick)
var dataStore = new Ext .data. Store({
proxy: new Ext.data.HttpProxy({
url: 'http://www.cnblogs.com/Service/SystemService/RoleService.ashx?Method=GetAllRoles'
}),
reader: new Ext.data.JsonReader({
root: 'Table',
totalProperty: 'RecordCount',
id: 'RoleId',
fields: [' RoleId', 'RoleName']
})
});
dataStore.load({ params: { 시작: 0, 제한: 20} })
//grid
var roleGrid = new Ext.grid.GridPanel({
지역: 'center',
id: 'roleGD',
title: 'Role Management',
store: dataStore,
columns:
[
new Ext.grid.RowNumberer({ header: "Number", width: 50 }),
{ header: "RoleId", width: 50, sortable: false, dataIndex: 'RoleId' , 숨김: true },
{ header: "역할 이름", width: 50, sortable: true, dataIndex: 'RoleName' }
],
loadMask: { msg: "로드 중... " },
stripeRows: true,
viewConfig: {
forceFit: true
},
sm: new Ext.grid.RowSelectionModel({ SingleSelect: true }),
bbar: new Ext. PagingToolbar({
pageSize: 20,
store: dataStore,
displayInfo: true,
displayMsg: "{0}부터 {1}까지의 기록 표시, 총 {2 } 막대",
emptyMsg: "기록 없음"
}),
tbar: toolBar
})
//Layout
var roleView = new Ext.Panel({
renderTo: ' roleMain',
높이: 550,
레이아웃: '테두리',
테두리: false,
항목: [roleGrid]
})
},
삭제: function() {
}
});
3.linq 코드
시스템 사용;
System.Collections.Generic 사용;
System.Linq 사용;
System.Text 사용;
네임스페이스 XQH.ExtJs.LinqDatabase
{
공용 클래스 RoleLinqAccess
{
LinqDatabaseDataContext db = new LinqDatabaseDataContext();
///
/// 获取所有角color
///
///
///
///
/// 반품>
공개 목록
{
var q = from r in db.XRole
select r;
전체 = q.Count();
if (한도 == 0)
{
return q.ToList();
}
else
{
return q.Skip(start).Take(limit).ToList();
}
}
///
/// 根据ID获取角color
///
///
/// 반품>
public XRole GetRoleById(int id)
{
var q = from r in db.XRole
where r.RoleId == id
select r;
q.First()를 반환합니다.
}
///
/// 새로운 내용
///
///
/// 반품>
공개 목록
{
db.XRole.InsertOnSubmit(role);
db.SubmitChanges();
db.XRole.ToList()를 반환합니다.
}
///
/// 根据ID删除角color
///
///
/// 반품>
공개 목록
{
var q = from r in db.XRole
where r.RoleId == id
select r;
db.XRole.DeleteAllOnSubmit(q);
db.SubmitChanges();
db.XRole.ToList()를 반환합니다.
}
///
/// 更新角color
///
///
/// 반품>
공개 목록
{
var q = from r in db.XRole
여기서 r.RoleId == role.RoleId
select r;
foreach(q의 XRole r)
{
r.RoleId = role.RoleId;
r.RoleName = 역할.RoleName;
}
db.SubmitChanges();
db.XRole.ToList()를 반환합니다.
}
}
}
4.ashx代码
///
/// 获取전체부角color
///
public void GetAllRoles()
{
StringBuilder jsonData = new StringBuilder();
int start = Convert.ToInt32(Request["start"]);
int Limit = Convert.ToInt32(Request["limit"]);
전체 합계 = 0;
목록
JsonConvert
jsonData = json.ToGridPanel(lsRole, 전체);
Response.Write(jsonData);
응답.끝();
}
///
/// 根据ID获取角color
///
///
/// 반품>
public void GetRoleById()
{
StringBuilder jsonData = new StringBuilder();
부울 성공 = false;
string rspText = string.Empty;
string id = Request["RoleId"].ToString();
시도해 보세요
{
XRole role = roleAccess.GetRoleById(Convert.ToInt32(id));
성공 = 사실;
rspText = "성공";
JsonConvert
jsonData = json.ToFormPanel(성공, rspText, 역할);
}
catch(예외예외)
{
success = false;
rspText = ex.Message;
}
Response.Write(jsonData);
응답.끝();
}
///
/// 새로운 내용
///
public void AddRole()
{
string jsonStr = string.Empty;
부울 성공 = false;
string rspText = string.Empty;
string roleName = 요청["RoleName"].ToString();
XRole 역할 = 새로운 XRole();
role.RoleName = 역할이름;
{
roleAccess.AddRole(role)을 시도해 보세요.
성공 = 사실;
rspText = "새로 시작합니다!";
}
catch(예외예외)
{
success = false;
rspText = ex.Message;
}
jsonStr = "{success:" 성공.ToString().ToLower() ",message:'" rspText "!'}";
Response.Write(jsonStr);
응답.끝();
}
///
/// 根据角color编号修改角color
///
public void UpdateRoleById()
{
string jsonStr = string.Empty;
부울 성공 = false;
string rspText = string.Empty;
string RoleId = 요청["RoleId"].ToString();
string RoleName = 요청["RoleName"].ToString();
XRole 역할 = 새로운 XRole();
role.RoleId = Convert.ToInt32(RoleId);
role.RoleName = 역할이름;
{
roleAccess.UpdateRole(role)을 시도해 보세요.
성공 = 사실;
rspText = "성공!";
}
catch(예외예외)
{
success = false;
rspText = ex.Message;
}
jsonStr = "{success:" 성공.ToString().ToLower() ",message:'" rspText "!'}";
Response.Write(jsonStr);
응답.끝();
}
///
/// 根据ID删除用户
///
public void DeleteRoleById()
{
string jsonStr = string.Empty;
부울 성공 = false;
string rspText = string.Empty;
시도
{
int id = Convert.ToInt32(Request["Id"].ToString());
목록
성공 = 사실;
rspText = "성공";
}
catch(예외예외)
{
success = true;
rspText = ex.Message;
}
jsonStr = "{success:" 성공.ToString().ToLower() ",message:'" rspText "!'}";
Response.Write(jsonStr);
응답.끝();
}

실제 세계에서 JavaScript의 응용 프로그램에는 프론트 엔드 및 백엔드 개발이 포함됩니다. 1) DOM 운영 및 이벤트 처리와 관련된 TODO 목록 응용 프로그램을 구축하여 프론트 엔드 애플리케이션을 표시합니다. 2) Node.js를 통해 RESTFULAPI를 구축하고 Express를 통해 백엔드 응용 프로그램을 시연하십시오.

웹 개발에서 JavaScript의 주요 용도에는 클라이언트 상호 작용, 양식 검증 및 비동기 통신이 포함됩니다. 1) DOM 운영을 통한 동적 컨텐츠 업데이트 및 사용자 상호 작용; 2) 사용자가 사용자 경험을 향상시키기 위해 데이터를 제출하기 전에 클라이언트 확인이 수행됩니다. 3) 서버와의 진실한 통신은 Ajax 기술을 통해 달성됩니다.

보다 효율적인 코드를 작성하고 성능 병목 현상 및 최적화 전략을 이해하는 데 도움이되기 때문에 JavaScript 엔진이 내부적으로 작동하는 방식을 이해하는 것은 개발자에게 중요합니다. 1) 엔진의 워크 플로에는 구문 분석, 컴파일 및 실행; 2) 실행 프로세스 중에 엔진은 인라인 캐시 및 숨겨진 클래스와 같은 동적 최적화를 수행합니다. 3) 모범 사례에는 글로벌 변수를 피하고 루프 최적화, Const 및 Lets 사용 및 과도한 폐쇄 사용을 피하는 것이 포함됩니다.

Python은 부드러운 학습 곡선과 간결한 구문으로 초보자에게 더 적합합니다. JavaScript는 가파른 학습 곡선과 유연한 구문으로 프론트 엔드 개발에 적합합니다. 1. Python Syntax는 직관적이며 데이터 과학 및 백엔드 개발에 적합합니다. 2. JavaScript는 유연하며 프론트 엔드 및 서버 측 프로그래밍에서 널리 사용됩니다.

Python과 JavaScript는 커뮤니티, 라이브러리 및 리소스 측면에서 고유 한 장점과 단점이 있습니다. 1) Python 커뮤니티는 친절하고 초보자에게 적합하지만 프론트 엔드 개발 리소스는 JavaScript만큼 풍부하지 않습니다. 2) Python은 데이터 과학 및 기계 학습 라이브러리에서 강력하며 JavaScript는 프론트 엔드 개발 라이브러리 및 프레임 워크에서 더 좋습니다. 3) 둘 다 풍부한 학습 리소스를 가지고 있지만 Python은 공식 문서로 시작하는 데 적합하지만 JavaScript는 MDNWebDocs에서 더 좋습니다. 선택은 프로젝트 요구와 개인적인 이익을 기반으로해야합니다.

C/C에서 JavaScript로 전환하려면 동적 타이핑, 쓰레기 수집 및 비동기 프로그래밍으로 적응해야합니다. 1) C/C는 수동 메모리 관리가 필요한 정적으로 입력 한 언어이며 JavaScript는 동적으로 입력하고 쓰레기 수집이 자동으로 처리됩니다. 2) C/C를 기계 코드로 컴파일 해야하는 반면 JavaScript는 해석 된 언어입니다. 3) JavaScript는 폐쇄, 프로토 타입 체인 및 약속과 같은 개념을 소개하여 유연성과 비동기 프로그래밍 기능을 향상시킵니다.

각각의 엔진의 구현 원리 및 최적화 전략이 다르기 때문에 JavaScript 엔진은 JavaScript 코드를 구문 분석하고 실행할 때 다른 영향을 미칩니다. 1. 어휘 분석 : 소스 코드를 어휘 단위로 변환합니다. 2. 문법 분석 : 추상 구문 트리를 생성합니다. 3. 최적화 및 컴파일 : JIT 컴파일러를 통해 기계 코드를 생성합니다. 4. 실행 : 기계 코드를 실행하십시오. V8 엔진은 즉각적인 컴파일 및 숨겨진 클래스를 통해 최적화하여 Spidermonkey는 유형 추론 시스템을 사용하여 동일한 코드에서 성능이 다른 성능을 제공합니다.

실제 세계에서 JavaScript의 응용 프로그램에는 서버 측 프로그래밍, 모바일 애플리케이션 개발 및 사물 인터넷 제어가 포함됩니다. 1. 서버 측 프로그래밍은 Node.js를 통해 실현되며 동시 요청 처리에 적합합니다. 2. 모바일 애플리케이션 개발은 재교육을 통해 수행되며 크로스 플랫폼 배포를 지원합니다. 3. Johnny-Five 라이브러리를 통한 IoT 장치 제어에 사용되며 하드웨어 상호 작용에 적합합니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

Dreamweaver Mac版
시각적 웹 개발 도구

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

안전한 시험 브라우저
안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.
