2016-09-19 75 views
0

這是我的問題。假設通過例子,當我點擊中繼行ID時,它將轉移到特定客戶的發票上。從兩個不同的頁面獲取數據

但是在客戶發票頁面中,只有當客戶Id登錄時纔會打開。因此,這裏有兩個不同的頁面訪問一個頁面數據。我的代碼如下。 在中繼器的頁面。

 <th> 
     <asp:LinkButton ID ="lnkbtnStmt" Text ="Statement" OnClick ="lnkbtnStmt_Click" runat="server"></asp:LinkButton> 
     <asp:HiddenField ID ="hfStmt" runat ="server" Value='<% #Eval("No")%>'/> 
    </th> 

直放站的.cs頁:

public void lnkbtnStmt_Click(object sender, EventArgs e) 
    { 
     int rptIndex = ((RepeaterItem)((LinkButton)sender).NamingContainer).ItemIndex; 
     string hfItem = Convert.ToString(((HiddenField)RptEmpCustInvoise.Items[rptIndex].FindControl("hfStmt")).Value); 

     Customer_Ledger_Entries custlist = new Customer_Ledger_Entries(); 
     List<Customer_Ledger_Entries_Filter> cFilter = new List<Customer_Ledger_Entries_Filter>(); 
     Customer_Ledger_Entries_Filter cfield = new Customer_Ledger_Entries_Filter(); 
     cfield.Field = Customer_Ledger_Entries_Fields.Customer_No; 
     cfield.Criteria = hfItem; 
     cFilter.Add(cfield); 
     Customer_Ledger_Entries[] culist = cls.wsCustInvoice.ReadMultiple(cFilter.ToArray(), null, 1); 
     if (culist.Length > 0) 
     { 
      Response.Redirect("frmCustomerInvoice.aspx?Customer_No=" + hfItem); 
     } 
    } 

而在另一個客戶頁面。當客戶獲得登錄並CustInvoice("empCustId");方法的工作,當我們點擊轉發ID

protected void Page_Load(object sender, EventArgs e) 
    { 
     try 
     { 
      if (!IsPostBack) 
      { 
       GetOpeningBal(); 
       bindCustInvoice(objSession.getSession(HttpContext.Current, "NonEmpCode")); 
       string empCustId = Request.QueryString["Customer_No"]; 
       if (empCustId.Length != 0) 
       { 
        CustInvoice("empCustId"); 
       } 
       GetClosingBal(); 

      } 
     } 
     catch (Exception ex) 
     { 
      ScriptManager.RegisterStartupScript(this.Page, this.GetType(), string.Empty, "alert('" + ex.Message.ToString() + "');", true); 
     } 
    } 

在這個頁面中,bindCustInvoice()方法效果。 任何一個可以給我的解決方案?

+1

好了,你有什麼問題嗎?問題可以更清楚 – snit80

+0

所以你的意思是問題是有人可以在不登錄的情況下訪問中繼器:O? –

+0

no ..正如我提到的問題,我需要從中繼器行ID傳輸數據到特定客戶的發票。 – sonsha

回答

1

當您單擊Repeater Id時,嘗試從查詢字符串發送頁面名稱。並在另一個客戶頁面查看該頁面的名稱

僞代碼

string PageName =""; 
     if(Request.QueryString["PageName"] != null) 
     { 
     PageName= Request.QueryString["PageName"]; 
     } 


    if(PageName != "") 
    { 
    string empCustId = Request.QueryString["Customer_No"]; 
        if (empCustId.Length != 0) 
        { 
         CustInvoice("empCustId"); 
        } 
    } 
    else{ 
     bindCustInvoice(objSession.getSession(HttpContext.Current, "NonEmpCode")); 
    } 
+0

@ webruster ..我是新的asp.net。那麼如何在URL中傳遞頁面名? – sonsha

+0

@soniya pagename意義上任何可以保留的字符串,例如:字符串可以是'foo'。所以你自己保留在客戶頁面分配'foo'的邏輯,所以你需要啓用與客戶相關的方法。在另一個頁面,這是我的意思 – Webruster

相關問題