2013-06-23 38 views
0

我已閱讀了一些關於從ASP .NET頁面中的模式彈出窗口中獲取值的文章,但它們似乎都使用JavaScript來完成此操作,但如果可能的話,這些操作並不是我想要的。如何使用ajax模式彈出窗口並從鏈接中獲取值?

我有有,我從列表填充到表中的中繼器的Web用戶的控制。每行都有一個鏈接按鈕,其中有一個重定向url,其值爲查詢字符串。

然後,我有另一個Web用戶控件這僅僅是一個面板,一旦點擊顯示實際的模式彈出中繼web用戶控件的鏈接按鈕。

是否有可能在一次中繼器鏈接按鈕被點擊,而無需重定向到同一頁面,您可以通過web用戶控件的值?我基本上想點擊鏈接,顯示模式並且一旦關閉,想要訪問該值。

我用鏈接填充轉發如下:

 string linkUrl = ""; 
     string action = ""; 
     if (Request.QueryString["action"] != null) 
     { 
      action = Request.QueryString["action"]; 
      switch (action) 
      { 
       case "SetupCompany": 
        { 
         linkUrl = "<a href=CreateCompanies.aspx?companyId="; 
         break; 
        } 
       case "ViewCompany": 
        { 
         linkUrl = "<a href=ViewCompany.aspx?companyId="; 
         break; 
        } 
      } 
     } 
     CompaniesBusinessManager mgr = new CompaniesBusinessManager(); 
     var companies = mgr.GetCompanies(txtCompanyName.Text, txtRegistrationNumber.Text); 
     if (linkUrl != "") 
     { 
      foreach (var c in companies) 
      { 
       c.Name = linkUrl + c.Id.ToString() + "&action=" + action + ">" + c.Name + "</a>"; 

      } 
     } 
     rptrCompanies.DataSource = companies; 
     rptrCompanies.DataBind(); 

回答

0

,如果你不希望頁面被重定向,那您需要使用JavaScript。 現在您可以傳遞不同控件的值,而無需返回服務器。

如果你把它沒有JavaScript的:

我認爲你需要從一個用戶控件傳遞到另一個值。我曾經通過在它們之間觸發可達事件來實現這一點。

例如:

在父視圖

<uc:YourUserControl runat="server" ID="UserControl_Test" 
     OnYourCustomAction="UserControl_YourUserControl_YourCustomAction" /> 

在用戶控件:

public event EventHandler<CustomActionEventArgs> YourCustomAction; 

也以相同的用戶控件創建一個公共觸發方法是從接入其他用戶控件

public void TriggerCustomActoinEvent(CustomActionEventArgs EventArgs) 
    { 
     if (this.YourCustomAction!= null) 
     { 
     this.YourCustomAction(this, EventArgs); 
     } 
    } 

希望這個幫助,在我回家的路上,這是從我的腦海!

+0

我結束冒泡事件到主頁面。這需要一些ViewState邏輯來解決回發問題。謝謝您的幫助。 –

+0

很高興幫助! –

0

沒有一個網頁提交或JavaScript它不是真的有可能。如果你正在使用模態彈出窗口,你已經在使用JS,那麼爲什麼不直接在JS中獲取值呢?你可以設置所有的轉發器按鈕的事件處理程序,如果他們通過AJAX使用這樣的裝載附加的事件處理程序:

$(document).on('click', '.repeaterButton', function(e) { 
    var valueOfBtnClicked = $(this).val(); 
    // Do something else 
}); 
相關問題