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

可编辑下拉列表框

Posted on 2006-01-04 10:18  欧阳另类  阅读(2594)  评论(7)    收藏  举报

在有些项目中经常会遇到下拉列表框里内容不够的情况下,允许输入,.NET里没有现成的组件,现在我以C#写了一个,希望高手指教

using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ComponentModel;
using System.Collections ;
using System.Collections.Specialized ;
using System.Drawing;

namespace DongLan.ControlLibrary
{
    
/// <summary>
    
/// Dropdown 可编辑的下拉列表框。
    
/// 2006-1-4
    
/// </summary>
    
/// 


    [DefaultProperty(
"Items"),
    ToolboxData(
"<{0}:Dropdown runat=server></{0}:Dropdown>")] 
    
public class DropDown : System.Web.UI.WebControls.WebControl
    
{
        
内部成员

        
公开的属性

        
重载

        
事件

        
private void m_oDDList_SelectedIndexChanged(object sender, EventArgs e)
      
{
           
this.Text   = m_oDDList.SelectedValue.ToString();
            
this.OnSelectedIndexChanged(e);
  
      }

        
protected virtual void OnSelectedIndexChanged(EventArgs args)
        
{
            EventHandler onSelectedIndexChanged 
= (EventHandler)Events[EventSelectedIndexChanged];
            
if(onSelectedIndexChanged != null)
                onSelectedIndexChanged(m_oDDList, args);
        }


//        protected override void OnPreRender(EventArgs e)
//        {
//            base.OnPreRender(e);
//        }
        protected override void Render(HtmlTextWriter output)
        
{

            output.WriteLine(
"<script language=\"JavaScript\">");
            output.WriteLine(
"function SelectDroup(txtName,DropuName){");
            output.WriteLine(
"txtName.value=DropuName.options(DropuName.selectedIndex).text");
            output.WriteLine(
"}");
            output.WriteLine(
"</script>");
            m_oDDList.Attributes.Add(
"onchange","javascript:SelectDroup("+m_oTxtList.ClientID+",this);");
            m_oDDList.RenderControl(output);
            m_oTxtList.RenderControl(output);
        }


    }

}