Wednesday, September 08, 2010 |
|
|
|
|
|
|

|
|
Controls nmduc073 posted on April 27, 2009 06:30::169 view(s) Mặc định, control Pagingcontrol của Dotnetnuke hiển thị các link First, Pre, Next, Last, và các số. Rồi bên trái, nó hiển thị vị trí hiện tại của trang. Tuy nhiên, giao diện đó nhiều lúc không phù hợp. Chẳng hạn như mình cần 1 paging control có 1 cái dropdownlist hiển thị số page. Khi click vào thì sẽ link tới trang với page đó. Sau 4 ngày hì hục sửa chữa, cuối cùng mình cũng đã làm được phần nào đó. Có những chỗ trong code chưa thật hoàn chỉnh lắm nhưng cũng tàm tạm. ^_^ Để sử dụng, bạn cần đặt code của control vào trong App_Code. Còn trên trang ascx, ta khai báo như sau: <%@ Register TagPrefix="mycontrol" Namespace="NMDUC.MyControls" %> <mycontrol:MyPagingControl_1 runat="server" ID="PagingControl2" CssClass="MyPagingTable"/> Các phần code behind, nối control với các parameter… thì đều y như bình thường. Mình đã trình bày trong module trước. Trong code của control, khi thay đổi giá trị page trong dropdownlist thì nó sẽ thay đổi giá trị của currentpage trên url. Khi mình viết code cho phần đó, tối ưu nhất là xử lý trong code của control luôn. Thế nhưng mình không làm được. Sự kiện selectedIndexChange trong đó không được invoke dù mình đã cố gắng tìm cách. Cuối cùng đành đưa nó ra client side giải quyết bằng cách gán attribute onchange và gọi 1 hàm javascript bên ngoài. Do đó, trên trang ascx, ta phải tạo và viết hàm js đó. [Read the rest of this article...] nmduc073 posted on April 25, 2009 05:16  ::1038 view(s) Trong Dotnetnuke, khi cần tạo paging cho 1 datalist chẳng hạn, bạn có thể sử dụng control Pagingcontrol có sẵn trong DNN. Mình có viết 1 vài bài viết minh họa về việc sử dụng control trong trang IT này rồi. Code của control đó bằng VB.NET thì có sẵn trong gói source của các version. Hôm nọ, do có nhu cầu chỉnh sửa, mình đã search và tình cờ thấy source bằng C# của control đó. Nên hôm nay chia sẻ cùng mọi người. Các bạn có thể down source của nó ở trên trang download hoặc ở link sau: Khi có source rồi, bạn có thể chỉnh sửa lại theo ý muốn bản thân. Minh dự định sẽ chỉnh lại cho phù hợp với yêu cầu. ^_^ [Read the rest of this article...] nmduc073 posted on April 17, 2009 06:26::165 view(s) Ở bài viết trước, mình nói về sử dụng custom validator control của ASP.NET. Trong bài viết này, mình sẽ nói về việc tạo một custom validator control của riêng bạn và sử dụng trên Dotnetnuke module. Ta hãy làm 1 ví dụ đơn giản minh họa cho nó. Đầu tiên, ta cần tạo 1 module test trước, có tên là MyCustomValidatorDemo chẳng hạn. Trên AppCode, ta tạo 1 class control MyCustomValidator.cs với nội dung như sau: namespace NMDUC.Modules.MyCustomValidatorDemo.Validators { ///<summary> /// Summary description for MyCustomValidator ///</summary> public class MyCustomValidator : BaseValidator { public MyCustomValidator() { base.EnableClientScript = false; } private ListControl _listctrl; protected override bool ControlPropertiesValid() { Control ctrl = FindControl(ControlToValidate); if (ctrl != null) { _listctrl = (ListControl)ctrl; return (_listctrl != null); } else return false; // raise exception } [Read the rest of this article...] nmduc073 posted on April 13, 2009 06:39  ::261 view(s) Mình có 1 control ví dụ như Pagingcontrol.vb, lấy từ source của module NewsArticles. Mình thử test nó trên 1 module của mình. Sau khi search và thử thì mình biết được cách dùng: đặt file .vb vào App_Code. Sau đây là cách mình test: -Mình tạo 1 module mới bằng VB có tên là MyUsePagingControlDemo. -Đặt pagingcontrol.vb vào App_Code/MyUsePagingControlDemo. -Trên code ViewMyUsePagingControlDemo.ascx, mình khai báo như sau: <myDNN1:PagingControl runat="server" ID="myPaging"></myDNN1:PagingControl> Dùng bình thường. Tuy nhiên cách này có nhược điểm là bạn không thể dùng cho module C#. Đơn giản là trong App_Code không cho 2 file có ngôn ngữ khác nhau trong cùng 1 thư mục. Đành tìm cách khác. T_T Mình đã thử chuyển file Pagingcontrol.vb thành dll file rồi. Nhưng đến khi khai báo để sử dụng thì nó lại không hiểu namespace. Bó hand luôn. T_T [Read the rest of this article...] nmduc073 posted on March 30, 2009 05:17  ::433 view(s) Trước đây, mình có viết bài giới thiệu về url control của Dotnetnuke. Nó được dung để upload file. Tuy nhiên, từ đó đến nay, mình chưa bao giờ sử dụng nó vì lười biếng. Nhưng bây giờ mình quyết định sẽ phải sử dụng nó cho các module của mình. Hãy vẽ ra 1 ngữ cảnh trước đã: Ta có 1 module trong đó yêu cầu có hỗ trợ phần up file lên. Ta phải click lên Add content để vào trang Edit. Trong trang edit có control để upload file. Ta phải up được file rồi phải lưu tên của file đó vào database hay xml file. Để sử dụng url control, ta cần khai báo và tạo nó như sau: <%@ Register TagPrefix="dnn" TagName="Label" Src="~/controls/LabelControl.ascx" %> <%@ Register TagPrefix="dnn" TagName="TextEditor" Src="~/controls/TextEditor.ascx"%> <%@ Register TagPrefix="dnn" TagName="Audit" Src="~/controls/ModuleAuditControl.ascx" %> <%@ Register TagPrefix="dnn" TagName="MyUrl" Src="~/controls/urlcontrol.ascx" %> <br /> <dnn:MyUrl ID="myurl" runat="server" ShowNewWindow="false" ShowTrack="false" ShowDatabase="false" ShowLog="false" ShowSecure="false" ShowTabs="false" ShowUrls="false" ShowNone="false" ShowUsers="false" ShowUpLoad="true" ShowFiles="true" UrlType="F" Required="false" /> <br /> <asp:Button runat="server" ID="tbn" Text="OK" onclick="tbn_Click" /> <br /> <asp:Label runat="server" ID="lb1"></asp:Label> Một url control được sử dụng. Mình đã tắt hầu hết các option để cho đơn giản. Có 1 button để khi click lên thì ta sẽ lưu lại file vào file xml hay database. [Read the rest of this article...] admin posted on October 31, 2008 02:16  ::407 view(s) Trong những article gần đây, mình đã lần lượt giới thiệu các user control được xây dựng bởi Core Team của DNN. Tiếp theo mình sẽ nói về moduleaudit control. ModuleAudit control là 1 user control dùng để hiển thị một số thông tin về 1 item trên 1 module là người tạo và thời gian tạo item đó. Để tìm hiểu về control này, bạn có thể tạo 1 module mặc định. Trong đó nó cung cấp sẵn moduleaudit control nằm ở file Edit. <%@ Register TagPrefix="dnn" TagName="Audit" Src="~/controls/ModuleAuditControl.ascx" %> <dnn:audit id="ctlAudit" runat="server" /> Bên codebehind: ctlAudit.CreatedByUser = "NMDUC"; ctlAudit.CreatedDate = DateTime.Now.ToLongTimeString(); Module này thực chất chỉ để hiện thị thông tin lấy ra từ database mà thôi. Dưới đây là output của đoạn code trên. [Read the rest of this article...] admin posted on October 30, 2008 13:02::406 view(s) Control User là 1 user control được cung cấp bởi Core Team. Nhiệm vụ chính của nó là làm đơn giản việc nhập và sửa đổi các thông tin của user. Các field phổ biến liên quan đến user được cung cấp sẵn cho người dùng như first name, last name, user name, password, email… Đây là 1 control đơn giản. Để sử dụng, ta tạo register tới control User <%@ Register TagPrefix="dnn" TagName="User" Src="~/controls/user.ascx" %> Rồi ta khai báo: <dnn:User runat="server" ID="myUserClt" /> Để nhập thông tin của user, ta chỉ việc để user nhập thông tin và rồi lấy các thông tin từ các field này, lưu vào cơ sở dữ liệu. Ta cũng có thể update thông tin user bằng cách load từ CSDL lên, đưa vào các field này, để user có thể cập nhật. Trên control này, ngoài các field, thì còn có các validator đi kèm với các field quan trọng. [Read the rest of this article...] admin posted on October 30, 2008 07:00  ::122 view(s) Trong các user control được xây dựng sẵn bởi nhóm core team, urlcontrol và urltracking có quan hệ gần gũi với nhau. Urlcontrol, ngoài việc được dùng để upload file, nó còn cho phép ta theo dõi link đó bằng cách track, log lại và ghi vào database. Table được dùng để ghi lại là UrlTracking. Và urltracking control được dùng để hiển thị các thông tin ấy cho 1 link cụ thể nào đó. *Các property: -Url: link mà ta sẽ track. -ModuleID: id của module mà đường link nằm. -TrackingUrl: đường link dạng tracking và lưu trong database. *Cách sử dụng: -Đầu tiên các bạn hãy sử dụng urlcontrol để tạo 1 link. Ở đây, tôi đã dùng Links module để tạo 1 link item với url l� http://www.dotnetnuke.com/. Nó được lưu trong UrlTracking với moduleID của Links module là 383. -Tạo register <%@ Register TagPrefix="dnn" TagName="Tracking" Src="~/controls/urltrackingcontrol.ascx" %> -Khai báo <dnn:Tracking runat="server" ID="myTrackingClt" ></dnn:Tracking> -Trong codebehind: myTrackingClt.URL = "http://www.dotnetnuke.com/"; myTrackingClt.ModuleID = 383; myTrackingClt.Visible = true; Nó sẽ lấy các thông tin từ module UrlTracking và hiển thị ra. Thú thực mình cũng chỉ mới nắm được sơ sơ cách dùng control này. Các bạn có thể tham khảo thêm ở module Links của DNN. [Read the rest of this article...] admin posted on October 29, 2008 12:32::331 view(s) Tiếp tục, chúng ta sẽ tìm hiểu về 1 user control khác là skin control trong DNN. Mình thử tìm tài liệu nói về nó nhưng không thấy. Định bỏ cuộc vì không biết dung nó như thế nào. May mà chợt nhớ là nó có dung trong SiteSettings.ascx. Các bạn có thể tìm trong thư mục \admin\Portal để tham khảo ví dụ. DNN:Skincontrol là 1 user control được xây dựng sẵn trong DNN nhằm hỗ trợ việc liệt kê các skin trong site. Ngoài ra còn có thể dùng để liệt kê các container của site. *Cách sử dụng: -Tạo Register <%@ Register TagPrefix="dnn" TagName="mySkin" Src="~/controls/skincontrol.ascx" %> -Khai báo <dnn:mySkin runat="server" ID="mySkinClt" /> [Read the rest of this article...] admin posted on October 28, 2008 05:50::87 view(s) SectionHead control là một user control được xây dựng sẵn bởi core team của DNN. Nhiệm vụ chính của control này là làm cho 1 control nào đó có thể expand hay collapse. *Các property chính: -Section: Giá trị của nó sẽ là ID của control mà nó định tác động tới. -IsExpanded: Giá trị là true hay false. Nếu giá trị là false thì mặc định ban đầu, control bị tác động sẽ bị collapse lại. -Text: Giá trị của nó sẽ được hiển thị như là title của control bị tác động. -IncludeRule: Giá trị là true hay false. Nếu true, thì ngay dưới title sẽ hiện ra 1 đường vạch dài bởi tag HR. *Cách sử dụng: -Tạo Register. <%@ Register TagPrefix="dnn" TagName="mySection" Src="~/controls/sectionheadcontrol.ascx" %> -Khai báo <dnn:mySection runat="server" ID="mySectionClt" Section="div1" IsExpanded="false" Text="Section Head Control Testing" IncludeRule="true" /> <div id="div1" runat="server"> The Section attribute points to the ID of the section that wraps around the content you want to hide or show. This should not be a control with the runat="server" attribute assigned to it. </div> [Read the rest of this article...] admin posted on October 27, 2008 04:05::95 view(s) Tiếp theo, ta lại tìm hiểu về một user control khác được tạo sẵn của DNN: Address control. Trong số các control được xây dựng sẵn của DNN, đây có lẽ là một trong những control đơn giản nhất về mặt chức năng. Control được tạo ra làm đơn giản hóa công việc của các lập trình viên khi muốn lấy thông tin về địa chỉ của member. Đây là 1 công việc được lập đi lập lại khá nhiều trong các dự án, phần membership. Control cung cấp các field để user nhập vào: -Street. -Unit. -City. -Country. -Region. -Postal code. -Telephone. -Cell. -Fax. [Read the rest of this article...] admin posted on October 27, 2008 00:00  ::127 view(s) Bài viết tiếp theo, mình xin giới thiệu về dual list control. Dual list control là 1 user control được xây dựng sẵn bởi nhóm core team của DNN. Nó có dạng giống như list control của ASP.NET nhưng ở đây có 2 list control để chuyển dữ liệu từ control này sang control kia và ngược lại. Một số ví dụ về hoàn cảnh sử dụng control này: -Bạn có 1 list các role và muốn assign cho 1 user 1 vài role nào đó. -Bạn có 1 list các sinh viên và muốn lấy 1 nhóm trong đó ra để phân công 1 nhiệm vụ nào đó. *Các property chính: Dưới đây là list các property đáng lưu ý của control này: -Assigned: Giá trị của nó sẽ là 1 arraylist chứa những object mà ta muốn gán giá trị vào mục Assigned. -Available: Giá trị của nó sẽ là 1 arraylist chứa những object mà ta muốn đưa vào trong mục Available. -DataTextField: Là field nằm trong object mà ta muốn hiện thị ra trên list Available và Assigned. -DataValueField: Là field nằm trong object mà ta muốn đặt làm index trên list Available và Assgined. [Read the rest of this article...] admin posted on October 25, 2008 08:04::246 view(s) Hôm nay, mình lại tiếp tục tìm hiều về label control trong DNN.
DNN: Label control là control được xây dựng sẵn trong DNN framework nhằm mục đích thay thế ASP:Label trong ASP.NET. Control này nằm trong thư mục ~/controls/labelcontrol.ascx.
*Đặc điểm:
Nói chung, DNN:Label có đầy đủ các đặc điểm mà ASP:Label có. Ngoài ra, nó có thêm một số property đáng lưu ý khác như sau:
-HelpText: Khi hiển thị giá trị text của DNN:Label, ở đầu sẽ xuất hiện 1 icon help. Đây là điểm đáng lưu ý so với ASP:Label. Khi click vào icon help này, sẽ hiện ra text dạng giống như tooltip. Giá trị text này được xác định qua HelpText này. Ví dụ: HelpText=”This is an example”.
-Suffix: Theo 1 article mà mình tìm được, khi xác định giá trị cho Suffix này, nó sẽ gán giá trị này vào cuối mỗi text của DNN:Label. Ví dụ như:
Thì khi hiện thị sẽ có dạng như sau:
ABC:
Tuy nhiên khi test, mình lại không thấy được kết quả như vậy. [Read the rest of this article...] admin posted on October 24, 2008 15:22::180 view(s) Urlcontrol là một web control của DNN xây dựng sẵn, nhằm hỗ trợ cho việc upload file trên DNN. Trong quá trình làm, mình không thấy documentation nào cho nó, ngoài một số thread trên các forum. Đây là điều đáng tiếc. Trong sự hiểu biết còn hạn hẹp của mình, mình sẽ cố gắng giới thiệu về control này. *Cách khai báo: Để sử dụng control này, bạn cần khai báo như sau: <%@ Register TagPrefix="dnn" TagName="URL" Src="~/controls/URLControl.ascx"%> Và sau đây là ví dụ để hiện thị control: <dnn:URL id="myurl" runat="server" width="250" Required="False" showtrack="False" shownewwindow="False" showlog="False" urltype="F" showUrls="False" showfiles="True" showtabs="False"></dnn:URL> *Các property chính: Sau đây là các property chính của urlcontrol: -UrlType: Kiểu link. F cho file, T cho Page. U cho link ngoài. -FileFilter: Để phân loại dạng file nào được upload. Ví dụ: FileFilter=”jpg,gif”… Khi đó, bạn sẽ chỉ thấy các file có đuôi jpg và gif khi browse để upload file. -ShowNone: Không hiển thị gì cả. Dành cho trường hợp khi không muốn cung cấp control này cho 1 user hay kiểu user nào đó. -ShowTabs: Cho chọn lựa web page trên site của ta. [Read the rest of this article...]
|
|
 |
|
|
|
|
|
|
Home TrangIT Forum |
|