2009-07-14 59 views
0

我有一个用户控件,它有一个与分页gridview。分页由对象数据源驱动,所以它默认使用dopostback事件。jQuery的Ajax标签与asp.net用户控件gridview

我想使用jquery通过ajax将用户控件加载到标签中,因为我有多个标签,我不想一次加载所有标签,如果不需要它们可以采用所有数据库标签。

因此,我把这个用户控件放在一个空白的aspx文件中,并将该选项卡的href =设置为该aspx文件。 GridView加载正常,看起来很棒。

我遇到的问题是,当我尝试更改gridview上的页面时,回发将转到aspx文件的URL,而不是页面上的标签。我知道这是应该发生的,但我想知道我能做些什么来使它可以回到正确的页面并在标签中工作。

它无法使用和不使用其周围的updatepanel。

任何帮助表示赞赏。

MyTabs.aspx?tab=gridViewOnly 

然后在服务器端,您可以检查哪些选项卡需要显示:

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

if(tab == "gridViewOnly") 
{ 
// make the gridview visible and do only needed calls to DB 
} 

回答

0

您可以通过使用URL参数使用不同的标签相同的aspx文件:

<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';