如何将mongodb搜索结果绑定到asp.net C#gridview

如何将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

我无法将MongoDB搜索结果绑定到asp.net C#GridView。每当我运行程序时,它都会抛出NullReferenceException:“对象引用未设置为对象的实例。”调试后,我发现GridView id(gridView1)为null。但是,我不知道为什么gridView1是空的。任何帮助都将不胜感激

这是我的标记页面:

<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>
            &nbsp;
        </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仍引发空引用错误。谢谢你的帮助。我应该说我的评论不是关于解决你的问题,只是一个观察。