Creation and use of custom controls in ASP.NET

zhaozj2021-02-16  54

Creation and use of custom controls in ASP.NET

Creating and using custom controls in ASP.NET brings flexibility for our writing programs and protects the copyright of the program source code. The idea is: establish a CS file, the control created in this file must inherit the System.Web.ui.Control class, which can create properties, methods, and events for the control. Then compile into an assembly, put it in a bin directory, and how to use it.

This article describes the creation and use of custom controls in this article. The program mainly implements access to table Employees in SQLServer2000, which can be arranged or designed in an ascending or descending order of any field in the table.

The following is a detailed creation process:

1. Create a DataSetClass.cs class file and enter the following:

Using system;

Using system.Web;

Using system.Web.ui;

Using system.data;

Using system.data.sqlclient;

Using system.reflection;

[Assembly: AssemblyTitle ("WEB Control for Data")]

[assembly: assemblyDescription ("You can sort any data returned")]

[Assembly: AssemblyConfiguration ("No Configuration"]]

[Assembly: AssemblyCompany ("ACCP")]]]

[Assembly: AssemblyProduct ("DatasetClass")]]]

[Assembly: AssemblyCopyright ("Li Zanhong")]

[assmbly: assemblytrademark ("")]

[assmbly: assemblyculture ("")]

[Assembly: AssemblyVersion ("1.1.33.222")]]

Namespace Teachshow.Charpter9.Returndataset

{

///

// The field to be sorted

///

Public Enum SortType

{

Employeeid,

Lastname,

Firstname,

Title,

TitleOfcourtesy,

Birthdate

}

///

/// sort mode, liter or descending order

///

Public Enum SortStyle

{

DESC,

ASC

}

///

/// DataSetClass's summary description.

///

Public Class DatasetClass: Control

{

Private SortType psorttype; // indicates the fields in the table.

Private SortStyle PsortStyle; // Indicates that the way is rising or drop.

Public SortType SortType

{

get

{

Return this.psorttype;

}

set

{

this.psosttype = value;

}

}

Public SortStyle SortStyle

{

get

{

Return this.psortstyle;

}

set

{

this.psortstyle = value;

}

}

Public DataSetClass ()

{

//

// TODO: Add constructor logic here

//

This.psorttype = sorttype.employeid; this.psortstyle = SortStyle.Desc;

}

///

/// Get record set

///

///

Public DataSet getData ()

{

String straType = NULL;

String strsty = null;

String SQL;

Switch (psorttype)

{

Case SortType.employeeiD:

Strtype = "EmployeeID";

Break;

Case SortType.birthdate:

Strtype = "birthdate";

Break;

Case SortType.FirstName:

Strtype = "firstname";

Break;

Case SortType.lastname:

Strtype = "lastname";

Break;

Case SortType.title:

Strtype = "Title";

Break;

Case SortType.TitleOfCourtesy:

Strtype = "TitleOfcourteesy";

Break;

DEFAULT:

Strtype = "undefine";

Break;

}

Switch (psortstyle)

{

Case SortStyle.asc:

strStyle = "ASC";

Break;

Case SortStyle.Desc:

strStyle = "DESC";

Break;

DEFAULT:

strStyle = "undefine";

Break;

}

SQL = "SELECT * from Employees Order by" strtype " strStyle;

SqlConnection Con = New SqlConnection ("Server = Accp-lzh; UID = SA; PWD = Sasa; Database = Northwind");

SQLCommand cmd = con.createcommand ();

cmd.commandtype = commandtype.text;

cmd.comMandText = SQL;

SqlDataAdapter ada = new sqldataadapter ();

Ada.selectcommand = cmd;

DataSet DS = New Dataset ();

C.Open ();

Ada.fill (DS, "Employees");

C. close ();

Return DS;

}

}

}

2. After saving, compile this file as the assembly, compile command to: CSC / T: library /r :system.dll ,system.web.dll c: /inetpub/wwroot/teachshow/charpter9/ReturndataSet/datasetClass.cs. Where: c: /inetpub/wwwroot/teachshow/charpter9/retataSet/DataSetClass.cs is the path where the file is located. If the compilation is successful, a DataSetClass.dll file will be generated.

3. Create a new web form to join DataSetClass.dl into the toolbox. The method is: Open the toolbox, find the Web Form tab, click Right click, select Add / Delete Item, click the "Browse" button, find the DataSetClass.dll file, and then automatically add it to the tab. Control name is class name: datasetClass4, start using this control: Draw a list of two lines, put a DataSetClass on a row, and put a DataGrid control to display data.

5, the code is as follows:

Test.aspx content:

<% @ Register tagprefix = "cc2" namespace = "teachshow.charpter9.ReturndataSet" Assembly = "DatasetClass"%>

<% @ Page language = "c #" codebehind = "test.aspx.cs" autoeventwireup = "false" inherits = "teachshow.charpter9.returndataset.test"%>

test </ title></p> <p><Link rel = "stylesheet" type = "TEXT / CSS" href = "../../ style.css"></p> <p><meta name = "generator" content = "Microsoft Visual Studio .NET 7.1"></p> <p><meta name = "code_language" content = "c #"></p> <p><meta name = "vs_defaultclientscript" content = "javascript"></p> <p><meta name = "vs_targetschema" content = "http://schemas.microsoft.com/intellisense/ie5"></p> <p></ HEAD></p> <p><body ms_positioning = "gridLayout"></p> <p><form id = "form1" method = "post" runat = "server"></p> <p><div align = "center"></p> <p><center></p> <p><table border = "0" cellpadding = "0" cellspacing = "0" width = "558" height = "198"></p> <p><tr></p> <p><td width = "558" Height = "35" class = "smallred"> <font face = "Song"> <cc2: datasetclass id = "datasetclass1" runat = "server" sorttype = "lastname" SortStyle = "ASC" > </ cc2: DataSetClass> </ font> </ td></p> <p></ TR></p> <p><tr></p> <p><td width = "558" Height = "163"></p> <p><ask: DataGrid ID = "DATAGRID1" runat = "server" width = "542px" cssclass = "smallblack"> </ asp: datagrid> </ td></p> <p></ TR></p> <p></ TABLE></p> <p></ center></p> <p></ div></p> <p></ form></p> <p></ body></p> <p></ Html></p> <p>Test.aspx.cs content:</p> <p>Using system;</p> <p>Using system.collections;</p> <p>Using system.componentmodel;</p> <p>Using system.data;</p> <p>Using system.drawing;</p> <p>Using system.Web;</p> <p>Using system.Web.SessionState;</p> <p>Using system.Web.ui;</p> <p>Using system.Web.ui.webcontrols;</p> <p>Using system.Web.ui.htmlcontrols;</p> <p>Namespace Teachshow.Charpter9.Returndataset</p> <p>{</p> <p>/// <summary></p> <p>/// TEST summary description.</p> <p>/// </ summary></p> <p>Public class test: system.Web.ui.page</p> <p>{</p> <p>Protected system.web.ui.webcontrols.dataGrid DataGrid1;</p> <p>Protected system.web.ui.webcontrols.dropdownlist dropdownload1;</p> <p>Protected system.Web.ui.webcontrols.dropdownlist dropdownload;</p> <p>protected system.web.ui.webcontrols.button button1;</p> <p>Protected teachshow.charpter9.returndataset.DataSetClass DataSetClass1;</p> <p>Private Void Page_Load (Object Sender, System.EventArgs E)</p> <p>{</p> <p>/ / Place the user code here to initialize the page</p> <p>this.bindgrid ();</p> <p>}</p> <p>Private void bindgrid ()</p> <p>{</p> <p>This.DataGrid1.datasource = this.datasetClass1.Getdata ();</p> <p>THIS.DATAGRID1.DATABIND ();</p> <p>}</p> <p>#Region web form designer generated code</p> <p>Override protected void oninit (Eventargs E)</p> <p>{</p> <p>//</p> <p>// Codegen: This call is necessary for the ASP.NET Web Form Designer. //</p> <p>InitializationComponent ();</p> <p>Base.onit (e);</p> <p>}</p> <p>/// <summary></p> <p>/// Designer supports the required method - do not use the code editor to modify</p> <p>/// This method is content.</p> <p>/// </ summary></p> <p>Private vidinitiRizeComponent ()</p> <p>{</p> <p>This.Load = New System.EventHandler (this.page_load);</p> <p>}</p> <p>#ndregion</p> <p>}</p> <p>}</p></div><div class="text-center mt-3 text-grey"> 转载请注明原文地址:https://www.9cbs.com/read-17544.html</div><div class="plugin d-flex justify-content-center mt-3"></div><hr><div class="row"><div class="col-lg-12 text-muted mt-2"><i class="icon-tags mr-2"></i><span class="badge border border-secondary mr-2"><h2 class="h6 mb-0 small"><a class="text-secondary" href="tag-2.html">9cbs</a></h2></span></div></div></div></div><div class="card card-postlist border-white shadow"><div class="card-body"><div class="card-title"><div class="d-flex justify-content-between"><div><b>New Post</b>(<span class="posts">0</span>) </div><div></div></div></div><ul class="postlist list-unstyled"> </ul></div></div><div class="d-none threadlist"><input type="checkbox" name="modtid" value="17544" checked /></div></div></div></div></div><footer class="text-muted small bg-dark py-4 mt-3" id="footer"><div class="container"><div class="row"><div class="col">CopyRight © 2020 All Rights Reserved </div><div class="col text-right">Processed: <b>0.040</b>, SQL: <b>9</b></div></div></div></footer><script src="./lang/en-us/lang.js?2.2.0"></script><script src="view/js/jquery.min.js?2.2.0"></script><script src="view/js/popper.min.js?2.2.0"></script><script src="view/js/bootstrap.min.js?2.2.0"></script><script src="view/js/xiuno.js?2.2.0"></script><script src="view/js/bootstrap-plugin.js?2.2.0"></script><script src="view/js/async.min.js?2.2.0"></script><script src="view/js/form.js?2.2.0"></script><script> var debug = DEBUG = 0; var url_rewrite_on = 1; var url_path = './'; var forumarr = {"1":"Tech"}; var fid = 1; var uid = 0; var gid = 0; xn.options.water_image_url = 'view/img/water-small.png'; </script><script src="view/js/wellcms.js?2.2.0"></script><a class="scroll-to-top rounded" href="javascript:void(0);"><i class="icon-angle-up"></i></a><a class="scroll-to-bottom rounded" href="javascript:void(0);" style="display: inline;"><i class="icon-angle-down"></i></a></body></html><script> var forum_url = 'list-1.html'; var safe_token = '_2BLbY6Jii07BhnY8sK7O2d3M0uVUWt4tSoDnax81D95nYf4qLiQPE3JYalEF1T70lhbcHPNylDiTXwFZzcVyuow_3D_3D'; var body = $('body'); body.on('submit', '#form', function() { var jthis = $(this); var jsubmit = jthis.find('#submit'); jthis.reset(); jsubmit.button('loading'); var postdata = jthis.serializeObject(); $.xpost(jthis.attr('action'), postdata, function(code, message) { if(code == 0) { location.reload(); } else { $.alert(message); jsubmit.button('reset'); } }); return false; }); function resize_image() { var jmessagelist = $('div.message'); var first_width = jmessagelist.width(); jmessagelist.each(function() { var jdiv = $(this); var maxwidth = jdiv.attr('isfirst') ? first_width : jdiv.width(); var jmessage_width = Math.min(jdiv.width(), maxwidth); jdiv.find('img, embed, iframe, video').each(function() { var jimg = $(this); var img_width = this.org_width; var img_height = this.org_height; if(!img_width) { var img_width = jimg.attr('width'); var img_height = jimg.attr('height'); this.org_width = img_width; this.org_height = img_height; } if(img_width > jmessage_width) { if(this.tagName == 'IMG') { jimg.width(jmessage_width); jimg.css('height', 'auto'); jimg.css('cursor', 'pointer'); jimg.on('click', function() { }); } else { jimg.width(jmessage_width); var height = (img_height / img_width) * jimg.width(); jimg.height(height); } } }); }); } function resize_table() { $('div.message').each(function() { var jdiv = $(this); jdiv.find('table').addClass('table').wrap('<div class="table-responsive"></div>'); }); } $(function() { resize_image(); resize_table(); $(window).on('resize', resize_image); }); var jmessage = $('#message'); jmessage.on('focus', function() {if(jmessage.t) { clearTimeout(jmessage.t); jmessage.t = null; } jmessage.css('height', '6rem'); }); jmessage.on('blur', function() {jmessage.t = setTimeout(function() { jmessage.css('height', '2.5rem');}, 1000); }); $('#nav li[data-active="fid-1"]').addClass('active'); </script>