FaibClass.WebControls控件详解(一)

抱歉,由于工作一直很忙,所以迟迟没有发布新版的控件,在此说声Sorry了,望大家见谅。

此次更新包括:
分页控件 (PagingPanel)
日期选择控件 (CalendarBox)
自动完成控件 (AutoCompleteBox)
验证码控件 (ValidateBox)
图片上传控件 (ImageUploader)
折叠面板控件 (FoldingPanel)
图片预览控件 (ImageViewer)
面板控件 (Panel)
屏蔽输入控件 (MaskTextBox)


该控件使用C#2003开发,如果使用到2005可能会出现不兼容问题。使用FaibClass.WebControls控件,需要配置Web.Config文件。如下:
<system.web>
    <httpHandlers>
        <add verb="POST,GET" path="*.fbs.ashx" type="FaibClass.WebControls.AshxHandlerFactory, FaibClass.WebControls" />
    </httpHandlers>
</system.web>


现将该控件包里的每一个控件一一作简单说明。

一、分页控件(PagingPanel)
控件可以关联DataGrid、 DataList、 Repeater,目前可传入的数据源有DataTable、DataView、Array、ArrayList。控件采用按需提取单页数据,因此不必担心速度与页面体积的问题。

主要属性
名称 说明
AutoGetCurrentPageIndex 是否在PageIndexChanged中自动的设置新的PageIndex,如果为False,则需在事件中设置pgp.CurrentPageIndex = e.NewPageIndex
AutoPostBack 是否使用PostBack方式进行分页,如果为Falsh,则使用Url传送PageIndex。
CurrentPageCssClass 当前页页码的显示样式。
CurrentPageIndex 当前页码的索引值。
LinkerId 可以设置控件的参照体,设置后,此控件的属性、事件都转移到参照体上。
PageBoxCssClass PageBox样式。
PageCount 当前的页码总数。
PageFormat 页码的格式,页码是使用P字符。
PageLinkCssClass 非当前页码的样式。
PageNumberCount 显示的页码顺序列表的个数。
PageSize 每页可显示的数据行数。
RecordCount 当前查询的数据总行数。
RepeatColumns 对应DataList的RepeatColumns
ShowFirstLast 是否显示“首页”“尾页”。
ShowPageBox 是否显示页码输入框。
ShowPageList 是否显示页码选择框。
Text 显示的文本内容。{RC}数据总数,{PC}总页数,{PS}每页行数,{CP}当前页码。


事件
PageIndexChanged 新页码跳转触发事件。如果AutoPostBack = false 则不触发此事件。

方法
LinkPagingPanel :设置参照体,与LinkerId同一用途。
SetDataSource :设置控件数据源。

使用方法如:

        private void LoadData1()
        
{
            
string[] s = new string[]{"昆明宜佳建材",
                                
"帝王洁具",
                                
"昆明杰盛机电经营部",
                                
"安平县鹏华公司昆明分公司",
                                
"鸿超五金电机",
                                
"昆明锐泰机电设备有限公司",
                                
"昆明力浩经贸有限公司",
                                
"云南莱特工贸有限公司",
                                
"昆明华盛交联电缆销售有限公司"}
;
            dgrd1.DataSource 
= pgp1.SetDataSource(s);
            dgrd1.DataBind();
        }


        
private void pgp1_PageIndexChanged(object sender, FaibClass.WebControls.PageIndexChangedEventArgs e)
        
{
            pgp1.CurrentPageIndex 
= e.NewPageIndex;
            LoadData1();
        }

二、日期选择控件(CalendarBox)
提供日期选择功能的控件。继承自TextBox。

主要属性
名称 说明
CustomTextBox 可关联自定义的文本框。即不使用本控件Render的文本框。
DateFormat 可设的日期显示格式。
DateSeparator 日期分隔符。
ErrorMessage 日期格式不正确时的提示信息。
ShowStyle 选择框的如何触发弹出。
Value 当前的日期值。
isDate(javascript) 判断所输入的日期是否符合格式。

事件
Changed 日期选择后触发此事件。javascript端相应的事件为OnChanged。

在javascript可以判断当前的日期格式是否正确:

alert(document.all.cdb.isData);

三、自动完成控件(AutoCompleteBox)

现在网上自动完成控件显然不是很多,做成服务器控件的更是几乎没有。

主要属性
名称 说明
DataSource 要绑定的数据源。相应的设置DataTextField及DataValueField。
ItemCallback 动态添加列表项的回调javascript函数名。
Items 列表项集合。
ListAllItemOnFocus 获得焦点时是否显示列表框。
MatchAnywhere 是否匹配任意位置的字符串,如果为false则从首字符开始。
Rows 列表框显示的行数。
SelectedIndex 当前的选择项的索引。相关的有SelectedItem、SelectedTex、SelectedValue。
SendKeyTab 选择后是否移到下一控件。
Text 文本值。

事件
Changed 列表项选择后触发此事件。javascript端相应的事件为OnChanged。

方法
SelectByText :根据指定的text查找项集合,并选定项。javascript为selectByText
SelectByValue :根据指定的value查找项集合,并选定项。javascript为selectByValue
javascript:
items.clear() :清除列表项。items为集合。
items.add(text, value) :添加列表项。
saveState() :保存到ViewState。
saveIndex() :保存选定项索引。
setIndex() :设置选定项索引。
showList() :显示列表框。

此控件多用于javascript中动态的填充数据。如:
// 1、根据act1的选定项填充二级act2,并回传到服务器
var act1 = document.all.act1;
var act2 = document.all.act2;
act2.items.clear(); 
//清空列表项
if(act1.selectedItem == nullreturn;
for(var i = 0; i < 10; i++)
{
    act2.items.add(i);
}

act2.saveState(); 
//保存到ViewState中

// 2、根据输入动态的填充列表框,这里需设定ItemCallback
var act2 = document.all.act2;
act2.items.clear(); 
//清空列表项
for(var i = 0; i < 10; i++)
{
    act2.items.add(i);
}

act2.showList(); 
//显示列表框


未完待续...

下载控件 版本1.3.141
下载示例
原文地址:https://www.cnblogs.com/faib/p/941271.html