JQuery AJAX вкладки с пользовательским элементом управления asp.net gridview - PullRequest
0 голосов
/ 14 июля 2009

У меня есть пользовательский элемент управления, в котором есть сетка с подкачкой страниц. Пейджинг управляется источником данных объекта, поэтому он использует события dopostback по умолчанию.

Я хочу использовать jquery для загрузки пользовательского элемента управления на вкладку через ajax, потому что у меня есть несколько вкладок, которые я не хочу загружать все сразу и принимать все обращения к базе данных, если они не нужны.

Поэтому я поместил этот пользовательский элемент управления в пустой файл aspx и установил href = вкладки для этого файла aspx. Gridview загружается нормально и выглядит отлично.

Проблема, с которой я сталкиваюсь, заключается в том, что, когда я пытаюсь изменить страницы в виде сетки, обратная передача идет по URL-адресу файла aspx, а не по странице, на которой я нахожусь со вкладками. Я знаю, что это должно произойти, но мне интересно, что я могу сделать, чтобы он мог вернуться на нужную страницу и работать на вкладках.

Он не работает с панелью обновления и без нее.

Любая помощь приветствуется.

Ответы [ 2 ]

2 голосов
/ 17 сентября 2011

клиент:

    <script language="javascript" type="text/javascript">
    $(document).ready(function () {

        var hdn = document.getElementById('<%= tabid.ClientID %>');

        var tbs = $("#tabs").tabs({
            select: function (event, ui) {                    
                if (hdn) hdn.value = ui.index;
            }
        });

        tbs.tabs('select', <%= sel %>);

    });
</script>

<asp:HiddenField ID="tabid" runat="server" />

Сервер:

method Tabs.Page_Load(sender: Object; e: EventArgs);
begin
    if (page.isPostBack) then
        sel := tabid.Value
    else 
        sel := "0";
end;

где sel является публичной собственностью класса страницы:

Tabs = public partial class(System.Web.UI.Page)
    public property sel : String := '0';
0 голосов
/ 14 июля 2009

Вы можете использовать один и тот же файл aspx для разных вкладок, используя параметр url:

MyTabs.aspx?tab=gridViewOnly

Затем на стороне сервера вы можете проверить, какая вкладка должна отображаться:

string tab = Request.Params["tab"];

if(tab == "gridViewOnly")
{
// make the gridview visible and do only needed calls to DB
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...