我發現這個未將對象引用設置爲對象的實例。在佔位
ph = (PlaceHolder)row.FindControl("phs");
ASP.Net代碼中的錯誤:
<PagerTemplate>
<table>
<tr>
<td><asp:PlaceHolder ID="phs" runat="server"></asp:PlaceHolder></td>
</tr>
</table>
</PagerTemplate>
我發現這個未將對象引用設置爲對象的實例。在佔位
ph = (PlaceHolder)row.FindControl("phs");
ASP.Net代碼中的錯誤:
<PagerTemplate>
<table>
<tr>
<td><asp:PlaceHolder ID="phs" runat="server"></asp:PlaceHolder></td>
</tr>
</table>
</PagerTemplate>
如果此行拋出異常:
ph = (PlaceHolder)row.FindControl("phs");
...那麼暗示row
爲空。如果它不爲空,那麼即使方法調用返回空值,它也不應該拋出異常。你可以投一個空引用沒有問題。
於是摸出row
是否可能爲空不知何故,然後要麼修復您的代碼,因此它不能,或檢查它是否是空使用它之前。
有我能想到三個不起眼的替代品,你要知道:
row.FindRow
實際上可以參照內row
字段或屬性這是一個代表,但委託爲空row.FindRow
可能會返回null,並且投射表達式可能會執行一些用戶定義的投射,它會拋出異常只有第一個這些真的會該行拋出異常,你要知道 - 我認爲這是令人吃驚的可能性不大。
我們該怎麼做? ?? – 2012-02-13 07:18:37
@Pushushukla:你怎麼做?目前我們不知道'row'是從哪裏來的,所以我們不知道它是否合法。你需要能夠爲自己思考自己的代碼。 – 2012-02-13 07:20:52
plz發佈您的整個代碼 – 2012-02-13 07:09:51
無論是row還是row.FindControl(「phs」)都是/返回null。更詳細的說明雖然有幫助! – Alex 2012-02-13 07:11:46