传递值并从Javascript重新加载用户控件

时间:2009-09-17 07:35:13

标签: asp.net javascript jquery asp.net-ajax user-controls

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

我该如何做到这一点?

到目前为止:

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方法中创建此行为?

感谢所有帮助,谢谢。

3 个答案:

答案 0 :(得分:5)

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

在我看来,如果您有一个搜索结果+详细信息视图方案,您将采用错误的方式。

当您点击“显示公司结构”时,您想要在第二个标签上看到详细信息吗?如果是这种情况,则选项卡方法会让用户感到困惑,使用显示详细信息的模式弹出窗口会更好。没有回发只是AJAX将带有详细信息的页面加载到模态弹出窗口中。

使用JQueryUI中的对话框小部件和AJAX加载函数$('#SomeDiv').load('details.aspx?id='+companyid);

,JQuery非常容易

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

它可以提供更好的用户体验,编码也非常简单。

我希望这会有所帮助。

答案 1 :(得分:0)

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

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

总而言之,我认为第一种解决方案不那么苛刻。

答案 2 :(得分:-2)

你可以在这里找到它

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

不要担心它有你需要的文章标题只需做四个步骤就可以了。