none
如果需要在GridView里溶入可编辑的DropDownList列该怎么弄? RRS feed

  • 问题

  • 找了很多可编辑的DropDownList的例子,全部都是在一般在普通页面进行,用一个div+TextBox遮盖那个DropDownList的下拉部分,现在正好要在GridView里溶入一个DropDownList模板列,这个东西会和用户权限结合,低级权限用户只能选,高级权限用户则可选也可写。
    2009年12月4日 8:15

答案

  • 你好,

    利用div+DropDownList+JavaScript实现。

    在绑定时,判断权限。如果是普通用户,设置ReadOnly属性。并给该textbox添加脚本onfocus事件,当该控件被选中触发onfocus事件,显示div。
    Microsoft Online Community Support
    • 已标记为答案 KeFang Chen 2009年12月10日 5:19
    2009年12月7日 2:47
  • 你这样需求只能用js现实 我不知道你想怎样让下拉框换成文本框 用什么操作转换? 如果点击 那就好办多 你直接用js操作下拉框去掉 换成文本框
    • 已标记为答案 KeFang Chen 2009年12月10日 5:18
    2009年12月7日 10:30

全部回复

  • 先判断用户有没有权限 生成不同的方式代码
    2009年12月4日 8:28
  • 在绑定事件里处理
    【孟子E章】
    2009年12月5日 4:24
    版主
  • 如果直接用遮盖不行吧,数据多的时候会滚动
    2009年12月7日 1:06
  • <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">
            <Columns>
            
                <asp:TemplateField>
                    <ItemTemplate>
                    <asp:DropDownList runat="server">
                    </asp:DropDownList>
                </ItemTemplate>
                </asp:TemplateField>
            </Columns>
            </asp:GridView>
    努力+方法=成功
    2009年12月7日 2:21
  • 你好,

    利用div+DropDownList+JavaScript实现。

    在绑定时,判断权限。如果是普通用户,设置ReadOnly属性。并给该textbox添加脚本onfocus事件,当该控件被选中触发onfocus事件,显示div。
    Microsoft Online Community Support
    • 已标记为答案 KeFang Chen 2009年12月10日 5:19
    2009年12月7日 2:47
  • 如果直接用遮盖不行吧,数据多的时候会滚动

    你把你所需求说清楚点  这样大家都明白
    2009年12月7日 7:40
  • 需求上是这样:
    gridview里有列是模板列,要求是“可以选也可以写的DropDownList”,就像VC6的那种,当低权限用户使用时,只是个可选的普通DropDownList,当高权限用户使用时,这列必须可选,也可写。

    这样的话,安排模板列时,要设立两个控件,一个是TextBox,一个是DropDownList,用TextBox遮盖住DropDownList除了箭头的那块,低权限用户时,那个TextBox不可写,他按DropDownList的下拉选了要的东西后,把他选的内容写到TextBox上,如果是高权限用户,除了可以进行同样的操作外,也可以直接写TextBox。

    是不是该这样设计呢?

    这样的话因为是在模板列里,普通页面上那种用精确定位textbox遮盖DropDownList框的做法似乎不管用

    2009年12月7日 8:20
  • 你这样需求只能用js现实 我不知道你想怎样让下拉框换成文本框 用什么操作转换? 如果点击 那就好办多 你直接用js操作下拉框去掉 换成文本框
    • 已标记为答案 KeFang Chen 2009年12月10日 5:18
    2009年12月7日 10:30
  • 那么TextBox应该怎么遮盖那个DropDownList,因为TextBox遮盖的只是DropDownList显示初始内容的那部分,那个下拉箭头和点击箭头申出来的内容还是可以看到的

    2009年12月8日 1:56
  • 那么TextBox应该怎么遮盖那个DropDownList,因为TextBox遮盖的只是DropDownList显示初始内容的那部分,那个下拉箭头和点击箭头申出来的内容还是可以看到的


    那直接换掉 用js+css隐藏
    2009年12月8日 7:32
  • 求举例,定位不知道怎么搞
    2009年12月8日 9:03
  • 关于定位,下面例子是用jquery做的。
    你可以参考下。

    function addMenuItems(target) {
                var attractiondiv = $("#attractiondiv");      
    //target为触发事件的对象              
                 var pos = target.offset(); 
                var width = target.width();
                attractiondiv.css({ "left": pos.left + "px", "top": (height + pos.top) + "px", "z-index": "10000" });
    
                attractiondiv.show();
                setDivWidth();
            }
    

    Microsoft Online Community Support
    2009年12月8日 9:38
  • 不用定位也可以 你先把那个文本框隐藏 那个下拉框位置 换掉时候用隐藏转换
    2009年12月8日 9:44
  • 关于定位,下面例子是用jquery做的。
    你可以参考下。

    function addMenuItems(target) {
    
                var attractiondiv = $("#attractiondiv");      
    
    //target为触发事件的对象              
    
                 var pos = target.offset(); 
    
                var width = target.width();
    
                attractiondiv.css({ "left": pos.left + "px", "top": (height + pos.top) + "px", "z-index": "10000" });
    
    
    
                attractiondiv.show();
    
                setDivWidth();
    
            }
    
    
    
    

    Microsoft Online Community Support

    这个也是直接遮盖吧?
    2009年12月10日 1:08
  • 不知道你说的遮盖是什么意思。当textbox获得焦点时时就在textbox的下面显示。并没有遮盖你要的任何东西。


    Microsoft Online Community Support
    2009年12月10日 5:16
  • 也就是说点击TextBox也能产生下拉的效果吧?!
    有没有普通aspx+js的例子?
    2009年12月10日 6:25
  • 这个我没有,jquery的兼容性要好点,用起来也方便。
    Microsoft Online Community Support
    2009年12月10日 6:31
  • 现在想了下还是不搞“可编辑的下拉框”,直接搞带下拉的textbox算了,可能还更方便些
    2009年12月10日 8:09