我正在开发网络应用。我想在转发器控制中使用链接按钮。此转发器控件位于更新面板中。现在点击linkbutton会导致刷新。
我找到了解决方案,需要添加ClientIDMODE="AutoID"
。它工作正常。但我的其他JavaScript停止工作。那么有没有其他选择,以便两者都能正常工作?
由于ClientIDMODE="AutoID"
而无效的jquery代码。
function setPage() {
var page = document.location.pathname.match(/[^\/]+$/)[0];
var pageName = page.split('.')[0];
if (pageName != 'Default') {
if ($('#' + pageName).hasClass('main')) {
$('#' + pageName).addClass('active');
var content = '<li><div class="sidebar-toggler hidden-phone"></div></li><li><a href="/Default.aspx">Dashboard<i class="icon-"></i></a></li>' + $('#' + pageName).children('ul').html();
$('#leftNavigation').append(content);
var currentActive = $('.nav ul li ul li.active');
if (currentActive != null) {
currentActive.removeClass('active');
currentActive.closest('ul').closest('li').removeClass('active');
}
}
else {
if ($('#' + pageName) != null) {
if ($('#' + pageName).closest('ul').html() != null) {
$('#' + pageName).closest('ul').closest('li').addClass('active');
$('#' + pageName).addClass('active');
var listItems = '<li><div class="sidebar-toggler hidden-phone"></div></li><li><a href="/Default.aspx">Dashboard<i class="icon-"></i></a></li>' + $('#' + pageName).closest('ul').html();
$('#leftNavigation').append(listItems);
var currentActive = $('.nav ul li ul li.active');
if (currentActive != null) {
currentActive.removeClass('active');
currentActive.closest('ul').closest('li').removeClass('active');
}
}
else {
var directory = document.location.pathname.substring(1, document.location.pathname.lastIndexOf('/'));
var dir_name = directory.toLowerCase() + '_main'
if (directory != null || '/') {
$('#' + dir_name).addClass('active');
var content = '<li><div class="sidebar-toggler hidden-phone"></div></li><li><a href="/Default.aspx">Dashboard<i class="icon-"></i></a></li>' + $('#' + dir_name).children('ul').html();
$('#leftNavigation').append(content);
var currentActive = $('.nav ul li ul li.active');
if (currentActive != null) {
currentActive.removeClass('active');
currentActive.closest('ul').closest('li').removeClass('active');
}
}
}
}
}
}
else {
var listItems = '<li><div class="sidebar-toggler hidden-phone"></div></li><li class="active"><a href="/Default.aspx">Dashboard<i class="icon-"></i></a></li>';
$('#leftNavigation').append(listItems);
}
}
答案 0 :(得分:0)
每当您引用需要将clientid模式设置为auto的项目时,您需要引用控件的ClientID而不是ID。你可以这样做:
$("#<%= mycontrol.ClientID %>").dosomething();
这将使用runat =&#34; server&#34;写出为任何控件的客户端脚本生成的唯一ID。在它上面。
答案 1 :(得分:0)
实际上我尝试了不同的方案来解决这个问题。我使用classname而不是id来标识元素。
因此在jquery中使用.
而不是#
,并在html代码中添加与id相同的classname。
所以现在Jquery代码是:
function setPage() {
var page = document.location.pathname.match(/[^\/]+$/)[0];
var pageName = page.split('.')[0];
if (pageName != 'Default') {
if ($("."+pageName).hasClass('main')) {
$('.' + pageName).addClass('active');
var content = '<li><div class="sidebar-toggler hidden-phone"></div></li><li><a href="/Default.aspx">Dashboard<i class="icon-"></i></a></li>' + $('.' + pageName).children('ul').html();
$('#leftNavigation').append(content);
var currentActive = $('.nav ul li ul li.active');
if (currentActive != null) {
currentActive.removeClass('active');
currentActive.closest('ul').closest('li').removeClass('active');
}
}
else {
if ($('.' + pageName) != null) {
if ($('.' + pageName).closest('ul').html() != null) {
$('.' + pageName).closest('ul').closest('li').addClass('active');
$('.' + pageName).addClass('active');
var listItems = '<li><div class="sidebar-toggler hidden-phone"></div></li><li><a href="/Default.aspx">Dashboard<i class="icon-"></i></a></li>' + $('.' + pageName).closest('ul').html();
$('#leftNavigation').append(listItems);
var currentActive = $('.nav ul li ul li.active');
if (currentActive != null) {
currentActive.removeClass('active');
currentActive.closest('ul').closest('li').removeClass('active');
}
}
else {
var directory = document.location.pathname.substring(1, document.location.pathname.lastIndexOf('/'));
var dir_name = directory.toLowerCase() + '_main'
if (directory != null || '/') {
$('.' + dir_name).addClass('active');
var content = '<li><div class="sidebar-toggler hidden-phone"></div></li><li><a href="/Default.aspx">Dashboard<i class="icon-"></i></a></li>' + $('.' + dir_name).children('ul').html();
$('#leftNavigation').append(content);
var currentActive = $('.nav ul li ul li.active');
if (currentActive != null) {
currentActive.removeClass('active');
currentActive.closest('ul').closest('li').removeClass('active');
}
}
}
}
}
}
else {
var listItems = '<li><div class="sidebar-toggler hidden-phone"></div></li><li class="active"><a href="/Default.aspx">Dashboard<i class="icon-"></i></a></li>';
$('#leftNavigation').append(listItems);
}
}