首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Javascript更改网格视图中隐藏字段的值?

如何使用Javascript更改网格视图中隐藏字段的值?
EN

Stack Overflow用户
提问于 2008-12-05 15:39:59
回答 4查看 2.6K关注 0票数 1

好的,我需要改变一个网格视图中隐藏字段的值,这是我目前所做的:

代码语言:javascript
复制
for(var i = 0; i < gv_Proofs.rows.length; i++)
{
    var tbl_Cell = gv_Proofs.rows[i].cells[0];
    var sdiFound = false;

    for(var x = 0; x < tbl_Cell.childNodes.length; x++)
    {
        if(tbl_Cell.childNodes[x].id == "_ctl0_MasterContentPlaceHolder_gv_Proofs__ctl2_lbl_SDI")
        {
            if(tbl_Cell.childNodes[x].innerHTML == sdi)
                sdiFound = true;
        }
        if(tbl_Cell.childNodes[x].id == "_ctl0_MasterContentPlaceHolder_gv_Proofs__ctl2_lbl_Updated" && sdiFound)
            tbl_Cell.childNodes[x].value = "true";
    }
}

有人能告诉我我哪里做错了吗?谢谢!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2008-12-05 20:17:12

我把它修好了。上面的循环工作正常,但显然我的sdi值并不总是正确设置的,因此我检查的值总是设置为false。因此,如果有人再次遇到这个问题,上面的方法在我的情况下工作得很好。

票数 1
EN

Stack Overflow用户

发布于 2008-12-05 15:49:11

编辑:发帖前检查的经典案例。 setting hidden=true实际上阻止了数据绑定,这将是JS出现问题的原因。 I 会说这是ASP.NET的典型问题之一,这让我咒骂它的名字,但<代码>E19您<代码>E210<代码>E111可能只是选择使用许多可搜索的解决方案之一来调整控件。<代码>E212

关于在ASP.NET中使用元素ID的评论保持不变,因为它是邪恶的。

如果没有更多的代码,很难知道(这到底是什么时候执行的?是不是有别的什么东西覆盖了它?标记是什么样子的?)但我现在可以说,通过一个元素的ASP.NET变形ID来引用它是一个糟糕的想法(TM)。

如果可以,我建议您尝试在为您处理引用的代码后台中修改它,或者至少在那里写出JS,在那里您可以使用clientID。如果做不到这一点,我会尝试通过一个扩展的元素搜索器--您自己的或者jquery等人的"$“函数之类的库util --来查找元素,这将允许您使用一个健壮的CSS或Xpath参数。

票数 0
EN

Stack Overflow用户

发布于 2008-12-05 15:50:47

只有当childNode id是(截断的) lbl_SDI时,第一条语句才是正确的。仅当第一条语句为真(通过sdiFound)且ID为(截断) lbl_Updated时,第二条语句才为真。

所以第二个陈述不可能是真的。只有当节点id不是lbl_Updated时,变量sdiFound才为真。

我想很多人可能也不同意你特别提到.NET ID的观点。您是否考虑过使用:

代码语言:javascript
复制
<%= lbl_SDI.ClientID %>

在你的javascript中?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/344212

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档