2016-11-15 96 views
3

在我的asp頁面中,我有一個下拉列表,它的值正在從數據庫中檢索。要檢索下拉列表的值,我已經在頁面後面的代碼中編寫了一個方法。在頁面後面的一個代碼中使用的方法到頁面後面的另一個代碼

現在我必須在另一個asp頁面中使用相同的下拉菜單。爲此,我將相同的方法寫入頁面後面的相應代碼,以便從數據庫中檢索值。

我想知道有什麼方法可以重用頁面代碼中所需的方法嗎?

例如。產品頁面(ASP頁)

<tr> 
    <td class="va-top">Type:</td> 
    <td><asp:ListBox ID="listBox_ProductType" runat="server" Rows="1" Width="300px"></asp:ListBox></td>    
</tr> 

aspx頁面

public void GetProductBillingType() 
{ 
    try 
    { 
     DataTable dt = new DataTable(); 
     listBox_ProductType.ClearSelection(); 
     DAL_Product_Registration objDAL = new DAL_Product_Registration(); 
     dt = objDAL.Get_ProductBillingType(); 
     if (dt != null && dt.Rows.Count > 0) 
     { 
      foreach (DataRow row in dt.Rows) 
      { 
       listBox_ProductType.Items.Add(new ListItem(row["billing_sub_type"].ToString(), row["billing_dtls_id"].ToString())); 
      } 
     } 
    } 
    catch (Exception ex) { } 
} 

現在在另一頁,我已經使用相同的下拉菜單。我在頁面的另一個代碼中也寫了同樣的方法。

但有沒有什麼辦法可以重用aspx頁面中使用的方法。

+0

您可以將方法定義爲靜態類中的靜態方法,並且可以從那裏調用該方法。合理 ? – lukai

+0

@lukai謝謝你的回答。但是請你可以用一些代碼示例來解釋你的回覆。這將是一個很大的幫助。謝謝! – user4221591

回答

2

你可以創建一個靜態類,並在那裏保存你的幫助代碼。所以你不需要重新發明輪子。創建靜態類的原因是您不需要創建用於訪問類方法的實例。 下面是一個例子。

public static class HelperMethods 
{ 
    public static void GetProductBillingType(ListBox listBox) 
    { 
     try 
     { 
      DataTable dt = new DataTable(); 
      listBox.ClearSelection(); 
      DAL_Product_Registration objDAL = new DAL_Product_Registration(); 
      dt = objDAL.Get_ProductBillingType(); 
      if (dt != null && dt.Rows.Count > 0) 
      { 
       foreach (DataRow row in dt.Rows) 
       { 
        listBox.Items.Add(new ListItem(row["billing_sub_type"].ToString(), row["billing_dtls_id"].ToString())); 
       } 
      } 
     } 
     catch (Exception ex) { } 
    } 
} 

現在,您可以通過調用方法在其他地方使用此方法。將ListBox傳遞到要添加數據的位置作爲參數。

HelperMethods.GetProductBillingType(list_box_where_you_want_to_add_data); 
+0

謝謝!它工作正常。 – user4221591

2

嘗試將此功能提取到其他方法,該方法將其作爲相關ListBox的參數獲取。

例如:

public class Helper 
{ 
    public static void GetProductBillingType(ListBox lb) 
    { 
     ... 
    } 
} 

在後面你的aspx代碼:

public void GetProductBillingType() 
    { 
     Helper.GetProductBillingType(listBox_ProductType); 
    } 

而在其他aspx頁面:

public void GetOtherBillingType() 
    { 
     Helper.GetProductBillingType(listBox_OtherType); 
    } 
0

這個問題的要點是提取可重複使用部分代碼插入另一個類中的方法(例如實用程序或輔助類),並從tho訪問此方法se代碼behing頁面。另外,您可以使用像resharper這樣的工具來推薦您如何更好地編寫代碼。

相關問題