Updatepanel中的链接按钮会导致页面刷新

时间:2014-11-17 14:17:23

标签: c# jquery asp.net postback

我正在开发网络应用。我想在转发器控制中使用链接按钮。此转发器控件位于更新面板中。现在点击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);
            }
        }

2 个答案:

答案 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);
            }
        }