一个小问题

kkkkkkmn 2010-01-20 12:25:49
我在JS里写的
var tempdivgv= document.getElementById("divgridview");
for(var i=0;i<tempdivgv.childNodes.length;i++)
{

if(tempdivgv.childNodes[i].disabled!=null)
{
tempdivgv.childNodes[i].disabled = "disabled";
}
}
我想遍历div里得所有控件 让控件不可用
但是我做出来的效果是
div变灰了 但是按钮还能点击
怎么样他不可用
就是后台Enable=FALSE

要求不能返回后台
在线等待
有答案马上结贴
...全文
173 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
绿色夹克衫 2010-01-20
  • 打赏
  • 举报
回复
确认按钮变灰了?如果按钮灰了的话,肯定就不能点了。
可以试试只把按钮变灰的情况(不是有名字么)。

Asp.Net没怎么用过,不过感觉他这个模版生成出来的Html,可能会存在子节点的问题。

[Quote=引用 11 楼 kkkkkkmn 的回复:]
按钮和div里都变灰了 但是按钮还能点
[/Quote]
kkkkkkmn 2010-01-20
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 litaoye 的回复:]
伪代码,大概这个意思

DisableElement(element node)
{
    element.disabled = "disabled";
    for(var i=0;i < element.childNodes.length;i++)
    {
        DisableElement( element.childNodes[i]);
    }
}
[/Quote]
这是我的div
<div id="divgridview" runat="server">
<asp:GridView ID="GridView1" runat="server" HorizontalAlign="Center" Width="100%"
AutoGenerateColumns="false" CellPadding="0" CellSpacing="0" OnRowCommand="GridView1_RowCommand1">
<Columns>
<asp:TemplateField HeaderText="序号">
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text="<%#(Container as GridViewRow).RowIndex + 1%>"></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="id" HeaderText="id" SortExpression="id" Visible="false" />
<asp:BoundField DataField="name" HeaderText="姓名" SortExpression="name" />
<asp:BoundField DataField="department" HeaderText="部门" SortExpression="department" />
<asp:BoundField DataField="number" HeaderText="数量" SortExpression="number" />
<asp:TemplateField HeaderText="修改">
<ItemTemplate>
<input type="button" id="editbtn" value="修改" onclick="Pop(this.idvalue);" idvalue='<%# Eval("id") %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="删除">
<ItemTemplate>
<asp:Button ID="btnDelete" runat="server" CommandArgument='<%# Eval("id") %>' Text="删除"
CausesValidation="False" OnClientClick="return confirm('是否确认删除?')" CommandName="DeleteA" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
<RowStyle Height="22px" />
<HeaderStyle BackColor="aliceBlue" Height="25px" />
<AlternatingRowStyle BackColor="aliceBlue" />
</asp:GridView>
</div>

应该不用递归
我问的关键是
tempdivgv.childNodes[i].disabled = "disabled";
按钮和div里都变灰了 但是按钮还能点
koukoujiayi 2010-01-20
  • 打赏
  • 举报
回复
.style.display="none";//隐
.style.display="block";//显
koukoujiayi 2010-01-20
  • 打赏
  • 举报
回复
.disabled=true;//不可用!!
kkkkkkmn 2010-01-20
  • 打赏
  • 举报
回复
3楼4楼
你们敢不敢去试试
你们说的我都试了
disabled控制显隐
而且都没有 TRUE 和FALSE
的值
拜托试试先
绿色夹克衫 2010-01-20
  • 打赏
  • 举报
回复
因为div的子节点下面可能还有子节点,所以需要递归。

[Quote=引用 5 楼 kkkkkkmn 的回复:]
引用 2 楼 litaoye 的回复:
LZ的意思是不是要递归?

跟递归有什么关系啊
就是让div里的控件不可用就ok

[/Quote]
绿色夹克衫 2010-01-20
  • 打赏
  • 举报
回复
伪代码,大概这个意思

DisableElement(element node)
{
element.disabled = "disabled";
for(var i=0;i < element.childNodes.length;i++)
{
DisableElement( element.childNodes[i]);
}
}
kkkkkkmn 2010-01-20
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 litaoye 的回复:]
LZ的意思是不是要递归?
[/Quote]
跟递归有什么关系啊
就是让div里的控件不可用就ok
-汪帆- 2010-01-20
  • 打赏
  • 举报
回复
if(tempdivgv.childNodes[i].disabled!=null)
{
tempdivgv.childNodes[i].disabled = "disabled";
}
改为:
if(tempdivgv.childNodes[i].disabled!=null)
{
tempdivgv.childNodes[i].disabled = true;
}
WM_JAWIN 2010-01-20
  • 打赏
  • 举报
回复
你要把按钮设为disabled
绿色夹克衫 2010-01-20
  • 打赏
  • 举报
回复
LZ的意思是不是要递归?
kkkkkkmn 2010-01-20
  • 打赏
  • 举报
回复
ziji
UP
woshieve 2010-01-20
  • 打赏
  • 举报
回复
关注关注
kkkkkkmn 2010-01-20
  • 打赏
  • 举报
回复
up
kkkkkkmn 2010-01-20
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 koukoujiayi 的回复:]
如果gridView全部变灰,也不一定循环!直接设置,如
function test()
{
          var gv=document.getElementById(" <%= GridView1.ClientID%>");
          gv.disabled=true;
          return false;
}

由于js设置按钮还可以点击,如在你的Delele按钮在执行js判断:
在你的delete按钮上:
<asp:Button ID="btnDelete" runat="server" CommandArgument=' <%# Eval("id") %>' Text="删除" CausesValidation="False" OnClientClick="return test1()"CommandName="DeleteA" />

js:
    function test1()
    {
        var gv=document.getElementById(" <%= GridView1.ClientID%>");
        if(gv.disabled==true)
              return false;
        else
            return confirm("是否确认删除?");
    }
楼主可试试!!
[/Quote]
谢谢
我先不适了
不过估计能好用
但是我想跟好的方法直接就不能点击该有多好啊
totallpc 2010-01-20
  • 打赏
  • 举报
回复
up
koukoujiayi 2010-01-20
  • 打赏
  • 举报
回复
如果gridView全部变灰,也不一定循环!直接设置,如
function test()
{
var gv=document.getElementById("<%= GridView1.ClientID%>");
gv.disabled=true;
return false;
}

由于js设置按钮还可以点击,如在你的Delele按钮在执行js判断:
在你的delete按钮上:
<asp:Button ID="btnDelete" runat="server" CommandArgument=' <%# Eval("id") %>' Text="删除" CausesValidation="False" OnClientClick="return test1()" CommandName="DeleteA" />

js:
function test1()
{
var gv=document.getElementById("<%= GridView1.ClientID%>");
if(gv.disabled==true)
return false;
else
return confirm("是否确认删除?");
}
楼主可试试!!
shighui 2010-01-20
  • 打赏
  • 举报
回复
不会
cjnkd 2010-01-20
  • 打赏
  • 举报
回复
up
james2222 2010-01-20
  • 打赏
  • 举报
回复
up
加载更多回复(1)

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧