2009-09-17 50 views
2

我有一个用户控件(因为我在其他页面中使用相同,所以我认为我应该重用代码,而不是我的工作的两倍),但在本页中显示公司,每个公司都有一个公司号码,我需要将该公司号码传递给该用户控制,并且必须使用通过的公司号码重新加载。传递一个值并重新载入用户控制从Javascript

我该如何做到这一点?

是我到目前为止有:

alt text http://www.balexandre.com/temp/2009-09-17_0917.png

显示公司结构链接是由

<a href="javascript:showStruct('112:201334607','5564967221');" 
    class="showStructLink">Show company structure</a> 

showStruct方法是这样写

function showStruct(pid, cnr) { 
    if (_showStrut == 0) 
     return; 

    // fancy stuff to be more apealing visually 
    $("#tdSearch").removeClass("tabTitleUp01").addClass("tabTitleDownUp01"); 
    $("#tdStruct").removeClass("tabTitleDownUp02").addClass("tabTitleUp02"); 

    $("#srtr1").hide(); 
    $("#srtr2").hide(); 
    $("#sttr1").show(); 

    // enable Search Results tab to be clicked in order to get back 
    $("#tdSearch") 
     .addClass("pointer") 
     .bind("click", function() { hideStructure(); }); 

    // pass the company number and reload wcCompanyStruture web user control 
    // __doPostBack('RefreshWebUserControl', cnr); 
    } 

我可以制作一个简单的aspx页面,内部控件和jQuery调用$ .get()来正确运行和填充控件,但我真的很想学习如何正确使用ASP.NET AJAX方法来做到这一点。发送数量和使用呼叫RefreshData它

后台代码很容易刷新用户控件,只需调用

wcCompanyStruture.RefreshData("companyNumberHere"); 

什么,我需要在我的用户控制端做的,以及在showStruct方法来创建这种行为?

所有帮助表示赞赏,谢谢。

回答

5

我知道这不是你问题的答案,但我想你可能会问错误的问题。

它在我看来,就像你有一个搜索结果+详细信息视图情景,你会错误的方式。

当您单击“显示公司结构”时,您想要在第二个选项卡右侧看到详细信息?如果是这种情况,那么选项卡方式会让用户感到困惑,用模式弹出来显示细节会更好。没有回传只是AJAX加载一个页面的细节到一个模式弹出窗口。

这是很容易与jQuery使用jQueryUI的对话框控件和AJAX加载功能$('#SomeDiv').load('details.aspx?id='+companyid);

http://docs.jquery.com/Ajax/load#urldatacallback

它会给一个更好的用户体验,这是出奇的简单代码。

我希望这会有所帮助。

+0

duhhh!有时我们只是喜欢复杂:) – balexandre 2010-01-26 22:33:37

-2

你可以在这里

http://codeclimber.net.nz/archive/2007/06/26/how-to-refresh-an-updatepanel-from-javascript.aspx

觉得不用担心文章的标题有你所需要的只是做了四个步骤,你准备好去。

+0

humm ...有一个隐藏的文本框,就像我正在做的一样,但我无法获取该值,并且在我的页面中没有在页面中的updatePanel ...但它给了我一个新的对的眼睛在这个问题上。 Thxs。 – balexandre 2009-11-11 07:59:34

+0

欢迎您,请您告诉我您是如何在隐藏框中发布价值的,以便了解您为什么在可能的情况下无法获得价值的原因。 thx – Kronass 2009-11-11 21:35:33

0

对于每个“显示公司结构”链接,可以使用LinkButton,并将CommandArgument属性设置为相应的公司标识。 LinkButton将导致回发。

第二种解决方案是使用隐藏变量:<input type="hidden" id="hiddenCompanyNumber">并在showStruct方法中设置它的值。然后,您可以拨打__doPostBack(),为此,您需要一个控制权来回传我的想法。

总而言之,我认为第一个解决方案不太好。

相关问题