2013-05-08 65 views
0
<a href="A.aspx?qs=2"></a> 

點擊本應在A.aspx GetMeData的代碼隱藏()火法GetMeData(OBJ發件人,EventArgs e)中也綁定到一個aspButton Ineed內 HTML鏈接再利用上的click事件此方法。我想要一個HTML錨點調用一個頁面方法,並只是該方法;沒有page_load。這是可能的嗎?如果是,那麼如何?

public void Page_Init(object o, EventArgs e) 
    { 
     if (!string.IsNullOrEmpty(Request.QueryString["curPage"])) 
     { 
      FilterOrdersByDate(); 
     } 
    } 


public void FilterOrdersByDate(object sender, EventArgs e) 
    { //with some bll logic it calls: 
    List<ESalesOrder> list = bsales.GetSalesOrderAdminByDate(esalesDate,curPage,perPage); 
} 

但是FilterOrdersByDate()上的調用;永遠不會達到它,但滿足上述條件...相反,它通過頁面加載並執行任何發現在page_load和完成..所有這一切。

回答

0

你不能做到這一點照片直接,但這樣的事情我做的伎倆

A.aspx.cs你應該有這樣的

protected void Page_Load(obj sender, eventargs e) 
{ 
    // If querystring contains qs=2, I call CommonGetMeData method 
    if (Request.QueryString["qs"] != null && Request.QueryString["qs"] == "2") 
    { 
     CommonGetMeData(); 
    } 
    else 
    { 
     // here goes the rest of the page_load logic 
    }  
} 

protected void GetMeData(obj sender, eventargs e) 
{ 
    // When event triggered, I also call CommonGetMeData method 
    CommonGetMeData(); 
} 

protected void CommonGetMeData() 
{ 
    // your logic. This method will be called from event 
    // handler and in case querystring contains qs=2 
} 
+0

>那是我無法避免執行其餘的頁面加載代碼?你是否像我一樣震驚?任何方式,我會試試這個,讓你知道.. – edam 2013-05-08 16:02:37

+0

你可以在'else'上執行page_load的其餘部分。更新了我的答案。 – 2013-05-08 16:34:41

+0

>我今天嘗試過,雖然很多不像你通過調用一個方法,然後調用它的目標,並再次寫它..但我沒有工作,它只是找到它,並忽略它,因爲我看到通過調試pointrt ... – edam 2013-05-08 16:46:32

0

代碼嘛......傳遞的查詢字符串不是問題。

問題:你在哪裏綁定這些數據?

如果你不想調用page_load上的方法,你應該在Web控件上調用on_item_data_bound我想。

方法是這樣的:

protected void On_ItemDataBound(object sender, EventArgs e) 
{ 
    //Request query string and do something. 
} 

然後調用的Web控件此方法。

乾杯。

+0

>這個「qs = 2」的數據綁定到方法GetMeData,它通過捕獲fromReq.QryStrng [「qs」]來使用它,反過來給我一個來自數據庫的查詢列表... – edam 2013-05-08 16:00:01

相關問題