我在
中发现了错误ph = (PlaceHolder)row.FindControl("phs");
ASP.Net代码:
<PagerTemplate>
<table>
<tr>
<td><asp:PlaceHolder ID="phs" runat="server"></asp:PlaceHolder></td>
</tr>
</table>
</PagerTemplate>
答案 0 :(得分:0)
如果此行抛出异常:
ph = (PlaceHolder)row.FindControl("phs");
...那表明row
为空。如果它不为null,那么即使方法调用返回null ,它也不应抛出异常。你可以抛出一个没有问题的空引用 1 。
因此,确定row
是否可能以某种方式为null,并修复您的代码以使其不能,或在使用之前检查是否为空。
1 我能想到三种不起眼的选择,请注意:
row.FindRow
实际上可以引用row
中作为委托的字段或属性,但该委托为空row.FindRow
可以返回null,并且转换表达式可能正在执行一些抛出异常的用户定义的强制转换只有第一个真的会该行抛出异常,请注意 - 我认为这是不可能的。