Exercise : Cơ bản về validation và javascript cho webpart
· Tiếp tục với WebPartSoln
v Exercise 01: Chuẩn bị tài nguyên cho webpart
Ø Thêm mới Class Library Project tên là ValidationForWebpart
Ø Click vào References | R-Right | Add Reference
Ø Chọn Microsoft.Sharepoint.Dll vào thư mục của WebPartSoln
Ø Tiếp tục chọn Tab .NET | System.Web
§ Khai báo Using
· using System.Web;
· using System.Web.UI;
· using Microsoft.SharePoint;
· using Microsoft.SharePoint.WebPartPages;
· using System.Web.UI.WebControls;
§ Khai báo kế thừa từ WebPart Class cho Class1
Ø Chọn Microsoft.Sharepoint.Dll vào thư mục của WebPartSoln
Ø Vào thư mục Properties mở file AssemblyInfo.cs
§ Di chuyển xuống phần cuối cùng của File AssemblyInfo.cs, thêm vào : (tùy với vị trí đặt Hkgsolution.snk).
· [assembly: AssemblyKeyFile("..\\hkgsolution.snk")]
Ø Build project ở chế độ Release và succsessfull
v Exercise 02: Cơ bản validation cho webpart sử dụng javascript
Ø Tiếp tục với ValidationForWebpart project
Ø Đổi Class1 thành BasicOfJavascriptValidation.cs
Ø Khai báo code trong phương thức CreateChildControls
§ Khai báo và khởi tạo Literal literalForKeyword
· Gán “Keyword: ” cho thuộc tính Text của literalForKeyword
· Thêm vào literalForKeyword webpart
§ Khai báo và khởi tạo TextBox tên txtKeyword
· Thêm vào txtKeyword webpart
§ Khai báo và khởi tạo Button tên btnOK
§ Gán “Search: ” cho thuộc tính Text của btnOK
§ Khai báo code javascript để kiểm tra giá trị của txtKeyword
§ Nếu người dùng không nhập keyword vào txtKeyword và nhấn nút search và hiển thị thông điệp là “vui lòng nhập từ khóa và click nút search”
§ Thêm btnSearch vào webpart
using System;
using System.Text;
using Microsoft.SharePoint;
using Microsoft.SharePoint.WebPartPages;
using Microsoft.SharePoint.WebControls;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ComponentModel;
using System.Xml.Serialization;
namespace ValidotorForWebpart
{
public class BasicOfJavaScriptValidator:WebPart
{
protected override void CreateChildControls()
{
Literal literalForKeyWord = new Literal();
literalForKeyWord.Text = "KeyWord: ";
this.Controls.Add(literalForKeyWord);
TextBox txtKeyWord = new TextBox();
this.Controls.Add(txtKeyWord);
string javaScript = "function ShowMessage(msg){alert(msg);}";
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "ABC", javaScript, true);
Button btnOK = new Button();
btnOK.Text = "Search";
this.Controls.Add(btnOK);
if (txtKeyWord.Text=="")
{
btnOK.OnClientClick = "ShowMessage('vui long nhap tu khoa va nhan enter')";
}
}
}
}
Ø Thêm BasicOfJavascriptValidation.dwp
Ø Build project chế độ Release và Deploy WebPart
§ Copy ValidationForWebpart.dll đến thư mục bin
§ Copy BasicOfJavascriptValidation.dwp đến thư mục wpcatalog
§ Thêm thẻ <SafeControl>
<SafeControl Assembly="ValidotorForWebpart, Version=1.0.0.0, Culture=neutral, PublicKeyToken=ec47e7d9465cc36e"Namespace="ValidotorForWebpart" TypeName="*" Safe="True" />
Ø Quay lại sharepoint site
§ Thêm WebPart này đến WebPart page
§ Không nhập bất cứ cái gì vào textbox và click nút search
§ Sẽ xuất hiện thông điệp lên màn hình
v Exercise 03: Cơ bản validation cho webpart sử dụng server control
Ø Tiếp tục với ValidationForWebpart project
Ø Tạo mới 1 Class tên BasicOfValidation.cs
Ø Khai báo code trong phương thức CreateChildControls
§ Chú ý sử dụng đối tượng Table, TableRow, TableCell để sắp xếp các control trên webpart
§ Khai báo và khởi tạo Literal literalForWellcomeMessage
· Gán “ Vui lòng nhập UserName và Password để thay đổi: ” cho thuộc tính Text của literalForWellcomeMessage
· Thêm vào literalForWellcomeMessage webpart
§ Khai báo và khởi tạo Literal literalForUserName
· Gán “ User Name: ” cho thuộc tính Text của literalForUserName
· Thêm vào literalForUserName webpart
§ Khai báo và khởi tạo TextBox tên txtUserName
· Thêm vào txtUserName vào webpart
§ Khai báo và khởi tạo RequiredFieldValidator
· Khai báo thuộc tính ControlToValidate cho txtUserName
· Khai báo thông điệp “Vui lòng nhập UserName” cho thuộc tính Text
· Thêm RequiredFieldValidator vào webpart
§ Khai báo và khởi tạo Button tên btnChange
· Gán “Change Password” cho thuộc tính Text của btnChange
· Thêm btnChange vào webpart
Table table = new Table();
table.GridLines = GridLines.Both;
//row1
TableRow tableRow = new TableRow();
TableCell tableCell = new TableCell();
Literal literalForWellComeMessage = new Literal();
literalForWellComeMessage.Text = "vui long nhap username va password cua ban de thay doi";
tableCell.Controls.Add(literalForWellComeMessage);
tableRow.Cells.Add(tableCell);
tableCell = new TableCell();
tableRow.Cells.Add(tableCell);
table.Rows.Add(tableRow);
//row2
tableRow = new TableRow();
tableCell = new TableCell();
Literal literalForUserName = new Literal();
literalForUserName.Text = "UserName: ";
tableCell.Controls.Add(literalForUserName);
tableRow.Cells.Add(tableCell);
tableCell = new TableCell();
TextBox txtUserName = new TextBox();
txtUserName.ID = "textBox1";
tableCell.Controls.Add(txtUserName);
tableRow.Cells.Add(tableCell);
table.Rows.Add(tableRow);
//row3
tableRow = new TableRow();
tableCell = new TableCell();
RequiredFieldValidator requiredFieldValidator = new RequiredFieldValidator();
requiredFieldValidator.ControlToValidate = txtUserName.ID;
requiredFieldValidator.SetFocusOnError = true;
requiredFieldValidator.Text = "*";
requiredFieldValidator.ErrorMessage = "Vui long nhap Username !!!!";
tableCell.Controls.Add(requiredFieldValidator);
tableRow.Cells.Add(tableCell);
tableCell = new TableCell();
Button btnChange = new Button();
btnChange.Text = " Change Password ";
tableCell.Controls.Add(btnChange);
tableRow.Cells.Add(tableCell);
table.Rows.Add(tableRow);
this.Controls.Add(table);
Ø Thêm BasicOfValidation.dwp
Ø Build project chế độ Release và Deploy WebPart
§ Copy ValidationForWebpart.dll đến thư mục bin
§ Copy BasicOfValidation.dwp đến thư mục wpcatalog
Ø Quay lại sharepoint site
§ Thêm WebPart này đến WebPart page
§ Không nhập bất cứ cái gì vào textbox và click nút Change Password
§ Sẽ xuất hiện thông điệp lên webpart
v Exercise 04: Cơ bản validation cho webpart sử dụng server control
Ø Tiếp tục với ValidationForWebpart project
Ø Tiếp tục với Class BasicOfValidation.cs
Ø Khai báo thêm code trong phương thức CreateChildControls
§ Chú ý sử dụng đối tượng Table, TableRow, TableCell để sắp xếp các control trên webpart
§ Khai báo và khởi tạo Literal literalForPassword
· Gán “ Password: ” cho thuộc tính Text của literalForPassword
· Thêm vào literalForPassword webpart
§ Khai báo và khởi tạo TextBox tên txtPassword
· Thêm vào txtPassword vào webpart
§ Khai báo và khởi tạo RequiredFieldValidator
· Khai báo thuộc tính ControlToValidate cho txtPassword
· Khai báo thông điệp “Vui lòng nhập Password của bạn” cho thuộc tính Text
· Thêm RequiredFieldValidator vào webpart
§ Khai báo và khởi tạo TextBox tên txtNewPassword
· Thêm vào txtNewPassword vào webpart
§ Khai báo và khởi tạo CompareValidator
· Khai báo thuộc tính ControlToValidator cho txtNewPassword
· Khai báo thuộc tính ControlToCompare cho txtPassword
· Khai báo thông điệp “Vui lòng nhập lại password” cho thuộc tính Text
· Thêm CompareValidator vào webpart
//row4
tableRow = new TableRow();
tableCell = new TableCell();
Literal literalForPassword = new Literal();
literalForPassword.Text = "Password: ";
tableCell.Controls.Add(literalForPassword);
tableRow.Cells.Add(tableCell);
tableCell = new TableCell();
TextBox txtPassword = new TextBox();
txtPassword.ID = "textBox2";
tableCell.Controls.Add(txtPassword);
tableRow.Cells.Add(tableCell);
table.Rows.Add(tableRow);
//row5
tableRow = new TableRow();
tableCell = new TableCell();
RequiredFieldValidator requiredFieldValidatorForPassword = new RequiredFieldValidator();
requiredFieldValidatorForPassword.ControlToValidate = txtPassword.ID;
requiredFieldValidatorForPassword.SetFocusOnError = true;
requiredFieldValidatorForPassword.Text = "*";
requiredFieldValidatorForPassword.ErrorMessage = "Vui long nhap Password !!!";
tableCell.Controls.Add(requiredFieldValidatorForPassword);
tableRow.Cells.Add(tableCell);
tableCell = new TableCell();
TextBox txtNewPassword = new TextBox();
txtNewPassword.ID = "textBox3";
tableCell.Controls.Add(txtNewPassword);
tableRow.Cells.Add(tableCell);
table.Rows.Add(tableRow);
//row5
tableRow = new TableRow();
tableCell = new TableCell();
CompareValidator compareValidator = new CompareValidator();
compareValidator.ControlToValidate = txtNewPassword.ID;
compareValidator.ControlToCompare = txtPassword.ID;
compareValidator.ErrorMessage = "vui long nhap lai password cho dung !";
tableCell.Controls.Add(compareValidator);
tableRow.Cells.Add(tableCell);
tableCell = new TableCell();
tableRow.Cells.Add(tableCell);
table.Rows.Add(tableRow);
Ø Build project chế độ Release và Deploy WebPart
§ Copy ValidationForWebpart.dll đến thư mục bin
Ø Quay lại sharepoint site
§ Thêm WebPart này đến WebPart page
§ Không nhập bất cứ cái gì vào textbox và click nút Change Password
§ Sẽ xuất hiện thông điệp lên webpart
v Exercise 05: Cơ bản validation trong toolpart
Ø Tiếp tục với ValidationForWebpart project
Ø Tạo mới 1 Class tên ToolpartForWebpart.cs
§ Using SharePoint dll
§ Khai báo kế thừa từ Class ToolPart
Ø Tạo mới Class ValidationForWebpart và khai báo phương thức GetToolParts
using System;
using System.Text;
using System.Web.UI;
using Microsoft.SharePoint;
using Microsoft.SharePoint.WebPartPages;
using System.ComponentModel;
using System.Xml.Serialization;
using System.Web.UI.WebControls;
namespace ValidotorForWebpart
{
[DefaultProperty("Text"),
ToolboxData("<{0}:ValidationForWebpart runat=server></{0}:ValidationForWebpart>"),
XmlRoot(Namespace = "ValidotorForWebpart")]
public class ValidationForWebpart:WebPart
{
private string showMessage = "WellCome Message";
[Browsable(false), Category("ValidationForWebpart Properties"),
DefaultValue("Hello ValidationForWebpart"),
WebPartStorage(Storage.Personal)]
public string ShowMessage
{
get { return showMessage; }
set { showMessage = value; }
}
private string userName = "Xin Chao Hung";
[Browsable(false), Category("ValidationForWebpart Properties"),
DefaultValue("Hello ValidationForWebpart"),
WebPartStorage(Storage.Personal)]
public string UserName
{
get { return userName; }
set { userName = value; }
}
protected override void CreateChildControls()
{
Literal literalForValidationWebpart = new Literal();
literalForValidationWebpart.Text = showMessage;
this.Controls.Add(literalForValidationWebpart);
TextBox txtUserName = new TextBox();
txtUserName.ID = "textBox2";
txtUserName.Text = userName;
this.Controls.Add(txtUserName);
RequiredFieldValidator requiredFieldValidator = new RequiredFieldValidator();
requiredFieldValidator.ValidationGroup = "Change";
requiredFieldValidator.ControlToValidate = txtUserName.ID;
requiredFieldValidator.SetFocusOnError = true;
requiredFieldValidator.Text = "Vui lòng nhập tên của bạn !!!!";
this.Controls.Add(requiredFieldValidator);
}
public override ToolPart[] GetToolParts()
{
ToolPart[] toolpart = new ToolPart[3];
WebPartToolPart wptp = new WebPartToolPart();
CustomPropertyToolPart custom = new CustomPropertyToolPart();
ToolpartForWebpart toolpartForWebpart = new ToolpartForWebpart();
toolpart[0] = wptp;
toolpart[1] = custom;
toolpart[2] = toolpartForWebpart;
return toolpart;
}
}
}
Ø Khai báo thêm code trong phương thức CreateChildControls của ToolpartForWebpart
§ Khai báo và khởi tạo Literal literalForWellcome
· Gán “Wellcome Message: ” cho thuộc tính Text của literalForWellcome
· Thêm vào literalForWellcome webpart
§ Khai báo và khởi tạo TextBox tên txtWellcomeMessage
· Thêm vào txtWellcomeMessage vào webpart
§ Khai báo và khởi tạo RequiredFieldValidator
· Khai báo thuộc tính ControlToValidate cho txtWellcomeMessage
· Khai báo thông điệp “Vui lòng nhập tên của bạn” cho thuộc tính Text
· Thêm RequiredFieldValidator vào webpart
using System.Web.UI;
using Microsoft.SharePoint;
using Microsoft.SharePoint.WebPartPages;
using System.ComponentModel;
using System.Xml.Serialization;
using System.Web.UI.WebControls;
namespace ValidotorForWebpart
{
public class ToolpartForWebpart : ToolPart
{
public ToolpartForWebpart()
{
this.Title = "This is validation for toolpart";
}
TextBox txtWellcomeMessage = null;
protected override void CreateChildControls()
{
//dien du lieu tu webpart vao toolpart
ValidationForWebpart webpart = (ValidationForWebpart)this.ParentToolPane.SelectedWebPart;
Literal literalForWellcome = new Literal();
literalForWellcome.Text = webpart.ShowMessage+ "<br>";
this.Controls.Add(literalForWellcome);
txtWellcomeMessage = new TextBox();
txtWellcomeMessage.ID = "textBox1";
txtWellcomeMessage.Text = webpart.UserName;
this.Controls.Add(txtWellcomeMessage);
RequiredFieldValidator requiredFieldValidator = new RequiredFieldValidator();
//requiredFieldValidator.ValidationGroup = "Show";
requiredFieldValidator.ControlToValidate = txtWellcomeMessage.ID;
requiredFieldValidator.SetFocusOnError = true;
requiredFieldValidator.Text = "*";
requiredFieldValidator.ErrorMessage = "Vui lòng nhập tên của bạn !!!!";
this.Controls.Add(requiredFieldValidator);
}
public override void ApplyChanges()
{
ValidationForWebpart webpart = (ValidationForWebpart)this.ParentToolPane.SelectedWebPart;
webpart.UserName = txtWellcomeMessage.Text;
}
}
}
Ø Thêm ValidationForWebpart.dwp
Ø Build project chế độ Release và Deploy WebPart
§ Copy ValidationForWebpart.dll đến thư mục bin
Ø Quay lại sharepoint site
§ Thêm WebPart này đến WebPart page
§ Không nhập bất cứ cái gì vào textbox và click nút OK
§ Sẽ xuất hiện thông điệp lên webpart ?
v Exercise 06: Cơ bản validation trong webpart và toolpart và ảnh hưởng của nút OK và Apply trong toolpart
Ø Chú ý: bạn sẽ không thấy thông điệp lỗi màu đỏ khi bạn click ok trong toolpart với textbox không có giá trị
Ø Tiếp tục với ValidationForWebpart project
Ø Sửa Class ValidationForWebpart.cs
§ Khai báo thuộc tính ValidationGroup của validation controls là “Change”
§ requiredFieldValidator.ValidationGroup = "Change";
Ø Sửa Class ToolpartForWebpart.cs
§ Khai báo thuộc tính ValidationGroup của validation controls là “Show”
§ requiredFieldValidator.ValidationGroup = "Show";
Ø Build project chế độ Release và Deploy WebPart
Ø Quay lại sharepoint site
§ Refesh WebPart này trong WebPart page
§ Không nhập bất cứ cái gì vào textbox và click nút OK
§ Xuất hiện thông điệp lên webpart ?
§ Xuất hiện thông điệp lên toolpart ?
v Exercise 07: Cơ bản validation trong webpart và toolpart
Ø Tiếp tục với ValidationForWebpart project
Ø Sửa Class ToolpartForWebpart.cs
§ Bỏ thuộc tính ValidationGroup của validation controls là “Show”
Ø Build project chế độ Release và Deploy WebPart
Ø Quay lại sharepoint site
§ Refesh WebPart này trong WebPart page
§ Không nhập bất cứ cái gì vào textbox và click nút OK
§ Xuất hiện thông điệp lên webpart ?
§ Xuất hiện thông điệp lên toolpart ? (Xuất hiện)
0 comments:
Post a Comment