DataGrid中添加DropDownList控件 添加焦点离开事件

 

  有这么一个需求,在DataGrid表格中要可以编辑这几列,其中包括文本框和下拉框,然后在及时保存修改的这些列。页面需要呈现出:初始化时以表格方式显示,点击该列时,出现文本框或者下拉框,鼠标移走后或者点击其他区域时,隐藏该控件,以Table显示。

  文本框倒是好做,TextBox有一个焦点事件,很容易做到这一点,但是DropDownList却没有这一事件,点击以后,不知道该用什么事件来使控件隐藏。

  最后 想到了一个比较死板的方法。初始化的时候,显示一个Label标签,隐藏下拉框(这时已经绑定)给Div添加一个点击事件TdClick。当该下拉框有值或者是只有一条数据时,这时候是不需要下拉框的,反之,隐藏Label标签,显示dropdownlist控件。这时,给dropdownlist添加一个focus()事件就可以了,再给dropdownlist添加一个onBlur()事件来控制,鼠标失去焦点时,隐藏该控件。

 

function TdClick()

{

    var DropName = document.getElementById(‘drpTest’);

    var LblName = document.getElementById(‘LblTest’);

    if (DropName.length > 1)

    {

        DropName.style.display = '';

        DropName.style.backgroundColor = '#ffffff';

        LblName.style.display = 'none';

        DropName.focus();

    }

}

function TdBlur()

{

    var DropName = document.getElementById(‘drpTest’);

    var LblName = document.getElementById(‘LblTest’);

 

    DropName.style.display = 'none';

    LblName.style.display = '';

}

 

 <asp:TemplateColumn HeaderText="Test" ItemStyle-Width="160px">
<ItemTemplate>
<div id="DivTest" οnclick="TdClick()" runat="server">
<asp:DropDownList ID="drpTest" runat="server" TabIndex="1" style="display:none" onBlur="TdBlur(this,'drpTest','LblTest')" Width="75px" Height="16px" >
</asp:DropDownList>
<asp:Label ID="LblTest" runat="server" Width="75px" Height="16px" ></asp:Label>
</div>
</ItemTemplate>
</asp:TemplateColumn>

 

 

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/fei-yu/p/7161154.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值