Toolbar Web工具栏控件的使用
一、说明
Toolbar控件是IE Web Controls中包含的控件之一,帮助开发者在ASP.NET页面中实现类似于Windows窗体工具条的功能和外观
Toolbar控件中最重要的属性是Items属性,包含下面类型的子控件,即页面呈现出来的工具条由这些子控件无素组成:
ToolbarButton:工具条中的按纽控件
ToolbarCheckButton:工具条中的选择按纽控件
ToolbarCheckGroup:工具条中的选择按纽组控件
ToolbarLabel:工具条中的标签控件
ToolbarSeparator:工具条中的分隔控件
ToolbarTextBox:工具条中的文本输入框控件
ToolbarDropdownList:工具条中的下拉列控件
二、Toolbar控件有两个常用事件,ButtonClick事件和CheckChange事件。
1、ButtonClick事件:定义工具条中按纽控件的单击事件。
例如:单击ToolbarButton、ToolbarCheckButton控件,将触发此事件。
2、CheckChange事件:Check类型控件的选择状态改变相关联。
三、Toolbar控件通常包含多个按纽(ToolbarButton),每个按纽被单击时都会触发控件的ButtonClick事件,然后执行不同的操
作,因此需要在ButtonClick事件中识别出是哪个按纽触发了事件。
1、第一个参数sender是引发事件的对象,即事件发送者,其中包含了引发事件对象的ID值。Sender还包含事件发送 者的控件类型,可以用上面代码来获取发送者的ID值:
string senderID=sender.ToString().Split(‘-’).Trim();//获取事件发送者的ID值
2、获取到事件发送者的ID后,就可以根据不同的ID执行不同的操作的命令,具体代码如下:
Private void Toolbar_ButtonClick(object sender,System.EventArgs e)
{
string senderID=sender.ToString().Split(‘-’).Trim();//获取事件发送者的ID值
if(senderID==按纽ID)
{
//按纽处理代码
}
}
四、实例
1、利用数据库中的数据为Toolbar控件添加子控件实现系统导航
using Microsoft.Web.UI.WebControls;//引入命明空间
private void Page_Load(object sender, System.EventArgs e)
{
if(!IsPostBack)
{
oSql="select akey,bkey,mkmc,imageurl from userqxb where enabled=1 and bkey='0_' and
id='"+Session["id"].ToString()+"' order by SEQUENCE";
SqlDataAdapter da=new SqlDataAdapter(oSql,con);
DataSet ds=new DataSet();
da.Fill (ds," query_result ");//将装有根结点的表取入内存数据集中
for(int i=0;i<ds.Tables["query_result"].Rows.Count;i++)
{
Microsoft.Web.UI.WebControls.ToolbarButton toolbar_button=new Microsoft.Web.UI.WebControls.ToolbarButton();
[email protected]["query_result"].Rows[i][3].ToString();
toolbar_button.Text=ds.Tables["query_result"].Rows[i][2].ToString();
toolbar_button.ToolTip=ds.Tables["query_result"].Rows[i][2].ToString();
toolbar_button.DefaultStyle.CssText="color:Green;font-size:9pt;font-weight:bold-italic;font-name:Arial";
toolbar_button.SelectedStyle.CssText="color:Blue;font-name:Arial;font-weight:bold-italic";
toolbar_button.HoverStyle.CssText="color:Red;font-name:Arial;font-weight:bold-italic";
toolbar_button.ID=ds.Tables["query_result"].Rows[i][0].ToString();
Toolbar.Items.Add(toolbar_button);
if(i==0)//显示工具条上的第一个功能 的子功能
{
Session["bkey"]=ds.Tables["query_result"].Rows[0][0].ToString();
Response.Write("<script language='javascript'>parent.childFrame.location='child.aspx';</script>");
}
}
}
}
2、点击导航中的一个功能从数据库中提取此功能的子功能
(1)、在工具条的单击事件中代码:
private void Toolbar_ButtonClick(object sender, System.EventArgs e)
{
string senderid=sender.ToString().Split('-')[1].Trim();
Session["bkey"]=senderid.ToString();
string text=Toolbar.Items[Toolbar.Items.IndexOf((Microsoft.Web.UI.WebControls.ToolbarButton)sender)].ToolTip.ToString();
if(text.ToString()=="退出系统") { Response.Write("<script>parent.close();</script>"); }
else if(text.ToString()=="重新登录") { Response.Write("<script>window.open('pass.aspx');parent.close();</script>"); }
else { Response.Write("<script language='javascript'>parent.childFrame.location='child.aspx';</script>"); }
}
(2)、在child.aspx的Page_Load事件中代码
if(!IsPostBack){
oSql="select akey,bkey,mkmc,imageurl,navigateurl from userqxb where enabled=1 and bkey='"+Session["bkey"].ToString()+"' and
id='"+Session["id"].ToString()+"' order by SEQUENCE";
ds=execute.execute_sql_ds(oSql);
Toolbar_child.Items.Clear();
for(int i=0;i<ds.Tables["query_result"].Rows.Count;i++)
{
toolbar_button=new Microsoft.Web.UI.WebControls.ToolbarButton();
[email protected]["query_result"].Rows[i][3].ToString();
toolbar_button.Text=ds.Tables["query_result"].Rows[i][2].ToString();
toolbar_button.ToolTip=ds.Tables["query_result"].Rows[i][2].ToString();
toolbar_button.DefaultStyle.CssText="color:blue;font-size:9pt;font-weight:bold-italic;font-name:Arial";
toolbar_button.SelectedStyle.CssText="color:LimeGreen;font-name:Arial;font-weight:bold-italic";
toolbar_button.HoverStyle.CssText="color:Red;font-name:Arial;font-weight:bold-italic";
toolbar_button.ID=ds.Tables["query_result"].Rows[i][0].ToString();
toolbar_button.AccessKey=ds.Tables["query_result"].Rows[i][4].ToString();
Toolbar_child.Items.Add(toolbar_button);
}}