asp.net如何在后台创建服务器控件
protected override void OnPreRender(EventArgs e)
{
TextBox tb = new TextBox();
PageFormControlsAdd(tb);
baseOnPreRender(e);
}
很好区分啊
用户控件
是自定义、
可重用控件,比如你所有的页面都需要有LOGO或者导航之类的,需要重复使用的,就可以创建用户控件
如果要更改的现有控件,
如按钮或标签,
功能那就需要自定义控件,就是可以给现有控件扩充功能
复合控件就是你自己创建的控件,举个例子,可能有点夸张比如聊天控件,直接用你创建的控件就能聊天
这样就清晰了吧
第三方控件是一些团队或者个人开发根据实际需要的应用开发出来的控件。 很多开发中都用到第三方控件,优点就是开发效率高; 缺点:如果不是开源的,需要花钱,还有就是第三方控件很可能经常升级,需要注意更新的内容。
自定义控件是直接或间接派生新类从 SystemWebUIControl 类,或从SystemWebUIWebControlsWebControl 类,编译后直接可以放到工具箱中用,就像TextBox,DataGrid一样。在设计器中可以用鼠标拖动到页面上使用。
部分第三方控件实际上就是自定义控件,这两个概念不是一个层次上的,自定义控件是从技术实现方式上来说的,第三方控件是从提供开发方来说的。
别激发RowEditing了,手写吧。
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="WebUserControlascxcs" Inherits="WebUserControl" %>
<asp:GridView ID="gv" runat="server" AutoGenerateColumns="False" OnRowDataBound="gv_RowDataBound">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:TextBox ID="tb" runat="server" OnTextChanged="TextBox1_TextChanged" AutoPostBack="True"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
using System;
using SystemData;
using SystemConfiguration;
using SystemCollections;
using SystemWeb;
using SystemWebSecurity;
using SystemWebUI;
using SystemWebUIWebControls;
using SystemWebUIWebControlsWebParts;
using SystemWebUIHtmlControls;
using SystemCollectionsGeneric;
public partial class WebUserControl : SystemWebUIUserControl
{
protected void Page_Load( object sender , EventArgs e )
{
if ( !IsPostBack )
{
List<string> ss = new List<string>();
for ( int i = 0 ; i < 10 ; i++ )
{
ssAdd( iToString() );
}
gvDataSource = ss;
gvDataBind();
}
}
protected void TextBox1_TextChanged( object sender , EventArgs e )
{
string str = ( (TextBox)sender )Text;
}
protected void gv_RowDataBound( object sender , GridViewRowEventArgs e )
{
if ( eRowRowType != DataControlRowTypeDataRow )
{
return;
}
TextBox tb = (TextBox)eRowCells[0]FindControl( "tb" );
tbText = eRowDataItemToString();
}
}
//如果是多行显示,可以再往里放一个隐藏域,用来记录数据的唯一约束键。
0条评论