2012-02-13 22 views
-1

我發現這個未將對象引用設置爲對象的實例。在佔位

ph = (PlaceHolder)row.FindControl("phs"); 

ASP.Net代碼中的錯誤:

<PagerTemplate> 
    <table> 
    <tr> 
     <td><asp:PlaceHolder ID="phs" runat="server"></asp:PlaceHolder></td> 
    </tr> 
    </table> 
</PagerTemplate> 
+1

plz發佈您的整個代碼 – 2012-02-13 07:09:51

+0

無論是row還是row.FindControl(「phs」)都是/返回null。更詳細的說明雖然有幫助! – Alex 2012-02-13 07:11:46

+0

​​ 的
2012-02-13 07:12:07

回答

0

如果此行拋出異常:

ph = (PlaceHolder)row.FindControl("phs"); 

...那麼暗示row爲空。如果它不爲空,那麼即使方法調用返回空值,它也不應該拋出異常。你可以投一個空引用沒有問題。

於是摸出row是否可能爲空不知何故,然後要麼修復您的代碼,因此它不能,或檢查它是否空使用它之前。


有我能想到三個不起眼的替代品,你要知道:

  • row.FindRow實際上可以參照內row字段或屬性這是一個代表,但委託爲空
  • row.FindRow可能會返回null,並且投射表達式可能會執行一些用戶定義的投射,它會拋出異常
  • 的分配可能是一個屬性setter呼叫時,拋出異常

只有第一個這些真的會該行拋出異常,你要知道 - 我認爲這是令人吃驚的可能性不大。

+0

我們該怎麼做? ?? – 2012-02-13 07:18:37

+1

@Pushushukla:你怎麼做?目前我們不知道'row'是從哪裏來的,所以我們不知道它是否合法。你需要能夠爲自己思考自己的代碼。 – 2012-02-13 07:20:52

相關問題