sadier

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

技术笔记。小试牛刀,在使用Infragistics的UltraWebTab控间过程中总结出的几点经验。

最近正在做个东东,是功能比较多的在线调查系统,其中用到了UltraWebTab 控件,在使用过程中,刻意的想多学一点东西,截至目前,遇到的问题都已经知道怎么解决了,现总结如下,供大家参考。
主要收获就是模板编辑状态下如何控制模板内的控件:
1、最常用到的:数据绑定
      先来看看这段代码Page_Load中添加:
   if(!IsPostBack)
   {
       String strConnection = ConfigurationSettings.AppSettings["ConnectionString"];
       OleDbConnection objConnection = new OleDbConnection(strConnection);

       String strSubSQL = "Select SubName FROM Vote_SubCategory";
       OleDbCommand objCommand = new OleDbCommand(strSubSQL,objConnection);

       objConnection.Open();

       ListBox SubList = (ListBox)this.UltraWebTab1.FindControl("lbxSub");
       SubList.Width =100;

       SubList.DataSource = objCommand.ExecuteReader();
       SubList.DataBind();
       objConnection.Close();

   }

红色的部分是关键点,使用FindControl,后面的lbxSub是在前台页面里添加的ListBox控进的ID,这个是要手工添加的,不同于其他web服务器控件,这是模板编辑的重点,用这个方法定以后的模板内的控件就可以用SubList这种定义的名字做事情了。好了,数据绑定结束。
接下来进行对SubList控件的双击事件的响应,这里有个自己的经验,还是先看代码:
在Web 窗体设计器生成的代码中
  override protected void OnInit(EventArgs e)
  {
   //
   // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
   //
   InitializeComponent();
   InitializeMyComponent();
   base.OnInit(e);
  }
  
  /// <summary>
  /// 设计器支持所需的方法 - 不要使用代码编辑器修改
  /// 此方法的内容。
  /// </summary>
  private void InitializeComponent()
  {
   this.ListBox1.SelectedIndexChanged += new System.EventHandler(this.ListBox1_SelectedIndexChanged);
   this.Button3.Click += new System.EventHandler(this.Button3_Click);
   this.Load += new System.EventHandler(this.Page_Load);

  }

  private void InitializeMyComponent()
  {
   ListBox SubList = (ListBox)this.UltraWebTab1.FindControl("lbxSub");
   SubList.SelectedIndexChanged +=new EventHandler(SubList_SelectedIndexChanged);

   Button SubEdit = (Button)this.UltraWebTab1.FindControl("btnSubEdit");
   SubEdit.Click +=new EventHandler(SubEdit_Click);
  }

红色的部分是自己添加的,这样做的原因中文注释已经说的很清楚了。就是可以保存修改。有一部分后面的Button响应回用到,解释一下SubList那部分就是添加选择数据到后面的TextBox里,继续代码:
  private void SubList_SelectedIndexChanged(object sender, System.EventArgs e)
  {
   ListBox SubList = (ListBox)this.UltraWebTab1.FindControl("lbxSub");
      TextBox txt = (TextBox)this.UltraWebTab1.FindControl("txtSubEdit");
   txt.Text = SubList.SelectedValue.ToString();
  }

已经很清楚了,这样就可以响应Select到TextBox显示数据了。

其它模板内的控件的事件类似,先忙工作去了。谢谢大家,
我的邮箱:panqi7000@126.com,欢迎讨论。

对了,贴张图形象一点:)


posted on 2004-07-13 23:10  毛小华  阅读(1470)  评论(0)    收藏  举报