如何将mongodb搜索结果绑定到asp.net C#gridview
我无法将MongoDB搜索结果绑定到asp.net C#GridView。每当我运行程序时,它都会抛出NullReferenceException:“对象引用未设置为对象的实例。”调试后,我发现GridView id(gridView1)为null。但是,我不知道为什么gridView1是空的。任何帮助都将不胜感激 这是我的标记页面:如何将mongodb搜索结果绑定到asp.net C#gridview,c#,asp.net,mongodb,gridview,C#,Asp.net,Mongodb,Gridview,我无法将MongoDB搜索结果绑定到asp.net C#GridView。每当我运行程序时,它都会抛出NullReferenceException:“对象引用未设置为对象的实例。”调试后,我发现GridView id(gridView1)为null。但是,我不知道为什么gridView1是空的。任何帮助都将不胜感激 这是我的标记页面: <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" BackCo
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" BackColor="White" GridLines="Both" BorderColor="#d8d8d8"
BorderWidth="1px" CellPadding="4" ForeColor="Black" AllowPaging="true" PagerSettings-Position="TopAndBottom" AllowSorting="true"
DataKeyNames="_id" Height="50px" BorderStyle="None" PageSize="50" Font-Size="8pt" CssClass="SP_dataLabel" Width="99%"
OnPageIndexChanging="GV_PageIndexChanging" onrowdatabound="GV_RowDataBound" OnRowDeleting="GV_RowDeleting" OnRowEditing="GV_RowEditing" OnRowUpdating="GV_RowUpdating" OnRowCancelingEdit="GV_RowCancelingEdit">
<FooterStyle BackColor="#CCCC99" />
<Columns>
<asp:CommandField ShowEditButton="True"></asp:CommandField>
<asp:CommandField ShowDeleteButton="True"></asp:CommandField>
<asp:BoundField ReadOnly="True" InsertVisible="False" DataField="_id" HeaderText="Id" ItemStyle-Width="30" />
<asp:BoundField SortExpression="Isbn" DataField="ISBN" HeaderText="ISBN" ItemStyle-Width="150" />
<asp:BoundField SortExpression="Title" DataField="Title" HeaderText="Title" ItemStyle-Width="150" />
<asp:BoundField SortExpression="Author" DataField="Author" HeaderText="Author" ItemStyle-Width="150" />
<asp:BoundField SortExpression="Publisher" DataField="Publisher" HeaderText="Publication Date" ItemStyle-Width="150" />
<asp:BoundField SortExpression="Description" DataField="Description" HeaderText="Description" ItemStyle-Width="150" />
</Columns>
<SelectedRowStyle ForeColor="#CCFF99" Font-Bold="True"
BackColor="#009999"></SelectedRowStyle>
<RowStyle ForeColor="#003399" BackColor="White"></RowStyle>
<PagerTemplate>
<table style="width:100%">
<tr>
<td style="white-space:nowrap;text-align:center">
<div id="pager">
<asp:ImageButton ImageAlign="AbsBottom" ID="imgFirst" runat="server" CommandArgument="First" CommandName="Page" OnClientClick="PageIndexChanged();" ImageUrl="Images/DataContainer_MoveFirstHS.png" />
<asp:ImageButton ImageAlign="AbsBottom" ID="imgPrevious" runat="server" CommandArgument="Prev" CommandName="Page" OnClientClick="PageIndexChanged();" ImageUrl="Images/DataContainer_MovePreviousHS.png" />
<asp:Label ID="lblPageLabel" runat="server" Text="Page" Font-Names="Arial" Font-Size="7pt"></asp:Label>
<asp:DropDownList ID="ddlPageSelector" Font-Names="Arial" Font-Size="8pt" runat="server"></asp:DropDownList>
<asp:ImageButton ImageAlign="AbsBottom" ID="imgNext" runat="server" CommandArgument="Next" CommandName="Page" OnClientClick="PageIndexChanged();" ImageUrl="Images/DataContainer_MoveNextHS.png" />
<asp:ImageButton ImageAlign="AbsBottom" ID="imgLast" runat="server" CommandArgument="Last" CommandName="Page" OnClientClick="PageIndexChanged();" ImageUrl="Images/DataContainer_MoveLastHS.png" />
</div>
</td>
</tr>
</table>
</PagerTemplate>
<PagerStyle BackColor="#F7F7DE" ForeColor="Black" HorizontalAlign="Right" />
<HeaderStyle ForeColor="White" CssClass="SP_dataLabel_Header" Font-Bold="true" />
<EmptyDataTemplate>
</EmptyDataTemplate>
<RowStyle Font-Size="12pt" BackColor="#ebf3ff" Font-Names="Verdana" />
<AlternatingRowStyle BackColor="White" Font-Size="12pt" Font-Names="Verdana" />
<EditRowStyle Font-Size="Medium" />
<EmptyDataRowStyle Font-Size="Medium" />
</asp:GridView>
这是我的代码隐藏页:
public async void searchBook(string title)
{
IMongoDatabase mdb = MongoDBConnectionManager.ConnectToMongoDB();
var collection = mdb.GetCollection<Book>("Book");
var builder = Builders<Book>.Filter;
var filter = Builders<Book>.Filter.Eq("Title", title);
var sort = Builders<Book>.Sort.Ascending("Title");
var result = await collection.Find(filter).ToListAsync();
GridView1.DataSource = result;
GridView1.DataBind();
Server.Transfer("SearchResult.aspx", true);
}
}
public async void searchBook(字符串标题)
{
IMongoDatabase mdb=MongoDBConnectionManager.ConnectToMongoDB();
var collection=mdb.GetCollection(“账簿”);
var builder=Builders.Filter;
var filter=Builders.filter.Eq(“Title”,Title);
var sort=Builders.sort.升序(“标题”);
var result=await collection.Find(filter.toListSync();
GridView1.DataSource=结果;
GridView1.DataBind();
Server.Transfer(“SearchResult.aspx”,true);
}
}
是吗?如果要进行异步,请不要返回void
,返回Task
。我尝试按您的建议返回Task而不是void,但没有解决问题。代码隐藏中引用的GridView id仍引发空引用错误。谢谢你的帮助。我应该说我的评论不是为了解决你的问题,只是一个观察。是吗?如果要进行异步,请不要返回void
,返回Task
。我尝试按您的建议返回Task而不是void,但没有解决问题。代码隐藏中引用的GridView id仍引发空引用错误。谢谢你的帮助。我应该说我的评论不是关于解决你的问题,只是一个观察。