如何通过javascript获取ASP DetailsView内的控件?

时间:2011-03-29 13:16:31

标签: javascript checkbox detailsview confirmbutton

任何人都可以形容我如何使用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复选框。在详细信息视图的情况下,上面的代码无法找到复选框
然后我点击这个onclientclick事件的asp按钮 -

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

请帮忙......

3 个答案:

答案 0 :(得分:0)

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

您可以编写<%= chkbox4PubnOrder.ClientID %>来获取此生成的ID。

答案 1 :(得分:0)

或者,您始终可以在浏览器中查看页面的来源,并查看它为控件提供的ID。它通常是根据页面名称和您可能放置的任何其他“图层”构建的,例如用户控件等。

答案 2 :(得分:0)

<%= chkbox4PubnOrder.ClientID %>也不起作用,因为控件在ASP DetailView中。我尝试的方式与在GridView或datagrid中搜索控件的方式相同。那也没有运气。

我试图控制如下

<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,即这会在详细信息视图中找到复选框,但无法检查是否已选中。是否需要进行类型转换?如果是,请说明如何?

相关问题