2016-09-19 3 views
0

Вот моя проблема. предположим, например, когда я нажимаю на идентификатор строки повторителя, тогда он перейдет к конкретному счету клиентов.получить данные с двух разных страниц

Но на странице счета-фактуры клиента он открывается только при вводе идентификатора клиента. Таким образом, здесь доступны две страницы, на которые доступны данные одной страницы. мой код выглядит следующим образом. На странице ретранслятора.

 <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); 
     } 
    } 

А в другой странице клиента.

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() метод работает, когда клиент получает опознан и CustInvoice("empCustId"); метод работает, когда мы нажимали на ретранслятор идентификатор. Может ли кто-нибудь дать мне решение?

+1

хорошо, так что ваш вопрос? Вопрос может быть более ясным – snit80

+0

, поэтому вы имеете в виду под вопросом: кто-то может получить доступ к ретранслятору без входа в систему: O? –

+0

no..as Я упоминал в вопросе, мне нужно передать данные из идентификатора строки повторителей на конкретный счет клиента. – sonsha

ответ

1

Когда вы нажали на идентификатор ретранслятора, попробуйте отправить имя страницы из строки запроса. и проверьте имя страницы в вашей другой странице клиента

Псевдокод

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. так как передать pagename в URL? – sonsha

+0

@soniya pagename в смысле любая строка, которую вы можете сохранить, например: string может быть 'foo'. поэтому вы сами придерживаетесь логики, которую 'foo' назначается на странице клиента, поэтому вам нужно включить метод, связанный с клиентом. на другой странице, что я хотел сказать – Webruster

Смежные вопросы