任何人都可以形容我如何使用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;"
请帮忙......
答案 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
,即这会在详细信息视图中找到复选框,但无法检查是否已选中。是否需要进行类型转换?如果是,请说明如何?