2

谁能描述我如何使用 javascript 在 ASP DetailsView 中找到控件?我的要求是在按钮的客户端上显示一个确认框,单击该复选框是否选中。


这是没有DetailsView的代码 -

<script type="text/javascript" language="javascript">
function confirmation() {
    var chkbx = document.getElementById("chkbox4PubnOrder");

    if (chkbx.checked == false) {
        var answer = confirm('Are you sure to add a feature which be published');
        if (answer) {
            return true;
        }
        else {
            return false;
        }
    }
    else {
        return true;
    }
}
</script>

其中chkbox4PubnOrder是一个 asp 复选框。在详细信息视图的情况下,上面的代码无法找到复选框
,我触发了这个 asp 按钮的 onclientclick 事件-

OnClientClick="if(!confirmation()) return false;"

请帮忙...

4

3 回答 3

0

ASP.Net 为服务器端控件生成自己的 ID。

你可以写<%= chkbox4PubnOrder.ClientID %>来获取这个生成的 ID。

于 2011-03-29T13:19:42.797 回答
0

或者,您始终可以在页面进入浏览器后查看页面的源代码,并查看它为控件提供的 ID。它通常建立在页面名称和您可能已放入的任何其他“层”(例如用户控件等)的基础上。

于 2011-03-29T14:20:33.810 回答
0

<%= chkbox4PubnOrder.ClientID %>也不起作用,因为控件位于 ASP DetailView 内。我尝试了与我们在 GridView 或数据网格中搜索控件相同的方式。那也不是运气。

我试图控制如下

<script type="text/javascript" language="javascript">
function confirmation() {

    // first finding asp detailsview
    var detailsview = document.getElementById('<%= DetailsView1.ClientID %>');
    //then finding control inside the detailsview
    var chekbx = detailsview.getElementByTagName("chkbox4PubnOrder");

    if (chkbx.checked == false) {
        return confirm('Are you sure to add a feature which be published');
    }
    else {
        return true;
    }
}
</script>

此代码不显示 chkbx,因为null它找到了 detailsview 中的复选框,但找不到它是否被选中。需要类型转换吗?如果是,请描述如何?

于 2011-03-31T05:26:43.263 回答