为了您的洞察力,为了解我为什么出现此错误,实际上更好,还有如何解决它。我有一个GridView内嵌套的gridview。可能有更好的方法,但在这一点上,我已经得到了模式弹出工作,这也是永远的,所以除非这是完全愚蠢的方式来显示主细节,那么现在就说出来。主要细节空引用异常
我能够将datakey id传递给详细网格,但那是我得到空引用异常的地方,我猜这个bug没有存在,或者是不可见的。我的意思是,无论什么原因,我该如何解决这个问题?感谢advace。
aspx文件:
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<asp:GridView ID="gvForum" runat="server" DataSourceID="odsForumApproval" DataKeyNames="id" Width="200px"
RepeatColumns="1" DataKeyField="id" CssClass="gridview"
AutoGenerateColumns="False" GridLines="None" OnSelectedIndexChanged="_OnCommand">
<AlternatingRowStyle CssClass="altbgcolor" />
<Columns>
<asp:TemplateField >
<ItemTemplate>
<asp:Label runat="server" ID="lblTitle" Text='<%# Bind("Title") %>' />
<asp:Panel id="div" runat="server" align="center" class="confirm" style="display:none" >
<asp:GridView runat="server" ID="gvForumDetail" AutoGenerateColumns="False" DataKeyNames="id"
EmptyDataText="No Forum Detail" AllowPaging='true'
AllowSorting="true" PageSize="5" >
<AlternatingRowStyle CssClass="altbgcolor" />
<RowStyle VerticalAlign="Top" HorizontalAlign="Left" />
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:Label runat="server" ID="lblTraining" Text='<%# Bind("title") %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:Label runat="server" ID="lblCompletionDate" Text='<%# Bind("description") %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:Label runat="server" ID="lblRecurence" Text='<%# Bind("MemberName") %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:Label runat="server" ID="lblNotes" Text='<%# Bind("itemdate") %>' Width="200" />
</ItemTemplate>
</asp:TemplateField>
<asp:CommandField ShowCancelButton="true" ShowEditButton="true" ShowDeleteButton="true" />
</Columns>
</asp:GridView>
<br />
<asp:Button ID="btnClose" runat="server" Text="Close" Width="50px" />
</asp:Panel>
<ajaxToolKit:ModalPopupExtender ID="ModalPopupExtender1" runat="server"
TargetControlID="lblTitle"
PopupControlID="div"
CancelControlID="btnClose"
BackgroundCssClass="modalBackground" />
</ItemTemplate>
</asp:TemplateField>
<asp:CommandField ShowSelectButton="True" ShowDeleteButton="true" />
</Columns>
</asp:GridView>
代码文件:
public void _OnCommand(object sender, EventArgs e)
{
ObjectDataSource ods = new ObjectDataSource();
ods.ID = "ods_ForumDetail";
ods.EnableViewState = true;
ods.TypeName = "Forum";
ods.SelectMethod = "GetForumPostByID";
string id = "";
int rowIndex = gvForum.SelectedIndex;
id = gvForum.DataKeys[rowIndex].Value.ToString();
ods.SelectParameters.Add("id", System.TypeCode.Int32, id);
GridView gvForumDetail = (GridView)Master.FindControl("ContentPlaceHolder1").FindControl("gvForum").FindControl("gvForumDetail");
gvForumDetail.DataSource = ods;
gvForumDetail.DataBind();
}
你得到的错误是哪一行? – Etch
gvForumDetail。DataSource = ods; – Risho
另外我真的不关心我的“评级”在这个论坛上,但我很喜欢我的帖子如何得分为负2,我的问题“没有显示任何研究努力”。你们开玩笑吧? WTF! – Risho