sayso36
06-12-2008, 04:14 AM
hi -
I have created one master lovem.master and content lovec.aspx pages. In master I have the search textbox, radio buttons and Search button. In content page I have a gridview which should be populated when criteria is entered and 'look book' button is clicked on master page. The method to connect to database and populate content page's gridview is located in master page. When entered any character in textbox and selected either of title or author radio buttons and clicked 'Look book' , i'm getting the follwoing error.
Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.
Line 16: GridView mpGridview = new GridView();
Line 17:
Line 18: mpContentPlaceHolder = (ContentPlaceHolder)Master.FindControl("CPH1");
Please Help!!! the address of website is : http://ectweb2.cs.depaul.edu/sdesai8/lovec.aspx
My code for both pages is below.
lovem.master---------------------------------------------------------------------------------below------------------------------------------------------------------------------------------------------------------------- -
<%@ Master language="c#" %>
<%@ import Namespace="System.Data" %>
<%@ import Namespace="System.Data.OleDb" %>
<%@ import Namespace="System.Data.SqlClient"%>
<%@ import Namespace="System.Web.UI.WebControls"%>
<script language="c#" runat="server">
void startSearch(object sender, System.EventArgs e)
{
ContentPlaceHolder mpContentPlaceHolder = new ContentPlaceHolder();
GridView mpGridview = new GridView();
mpContentPlaceHolder = (ContentPlaceHolder)Master.FindControl("CPH1");
mpGridview = (GridView) mpContentPlaceHolder.FindControl("Gridview1");
string strSQL = "SELECT * FROM Books";
string strConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=e:\\ectserver\\ralbahra\\Database\\books.mdb";
if(SearchCat.Items[0].Selected)
{
strSQL = "SELECT * FROM Books WHERE ISBN like '%"+ Keyword.Text + "%'";
}
else
{
if(SearchCat.Items[1].Selected)
{
strSQL = "SELECT * FROM Books WHERE Author like '%"+ Keyword.Text + "%'";
}
else
{
if(SearchCat.Items[2].Selected)
{
strSQL = "SELECT * FROM Books WHERE BookName like '%"+ Keyword.Text + "%'";
}
}
}
string strResultsHolder;
strResultsHolder="";
OleDbConnection objConnection = new OleDbConnection(strConnection);
OleDbCommand objCommand = new OleDbCommand(strSQL, objConnection);
OleDbDataReader objDataReader;
try
{
objConnection.Open();
mpGridview.DataSource = objCommand.ExecuteReader();
mpGridview.DataBind();
objCommand.Connection.Close();
objCommand.Connection.Dispose();
}
catch (Exception ex)
{
}
objCommand.Connection.Close();
}
</script>
<html>
<form runat="server">
<center>Enter Keyword to Search</center> </br>
<center><asp:TextBox id="Keyword" width="300" runat="server"/></center>
<center><asp:RadioButtonList id="SearchCat" RepeatColumns="3" CellPadding="25" runat="server" RepeatDirection="Horizontal">
<asp:ListItem>Book Title</asp:ListItem>
<asp:ListItem>Author</asp:ListItem>
<asp:ListItem>ISBN</asp:ListItem>
</asp:RadioButtonList></center>
<asp:Button Text="Look Book" onclick="startSearch" type="submit" runat="server"/>
<asp:ContentPlaceHolder id="CPH1" runat="server">
</asp:ContentPlaceHolder>
</form>
</html>
lovec.aspx--------------------------------------------------------------------------------below-------------------------------------------------------------------------------------------------------------------------
<%@ Page MasterPageFile="lovem.master" %>
<%@ import Namespace="System.Data" %>
<%@ import Namespace="System.Data.OleDb" %>
<%@ import Namespace="System.Data.SqlClient"%>
<script language="c#" runat="server">
</script>
<asp:Content ContentPlaceHolderId="CPH1" runat="server">
<div>
<center><asp:GridView ID="GridView1" Runat="server" cellspacing="30" AutoGenerateColumns="False" CssClass="basix">
<Columns>
<asp:TemplateField ShowHeader="false">
<ItemTemplate>
<a href="http://ectweb2.cs.depaul.edu/sdesai8/List1alag.aspx?ISBN=<%# DataBinder.Eval(Container.DataItem, "ISBN") %>" />
<img src="<%# DataBinder.Eval(Container.DataItem, "imagelink") %>" Height=75 width=75>
</a>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField HeaderText="ISBN" DataField="ISBN"
></asp:BoundField>
<asp:HyperLinkField HeaderText="Book Title"
DataNavigateUrlFields="ISBN"
DataNavigateUrlFormatString=
"http://ectweb2.cs.depaul.edu/sdesai8/List1alag.aspx?ISBN={0}"
DataTextField="BookName">
</asp:HyperLinkField>
<asp:BoundField HeaderText="Author" DataField="Author"
></asp:BoundField>
<asp:BoundField HeaderText="Price" DataField="Price"
DataFormatString="{0:c}"></asp:BoundField>
</Columns>
</asp:GridView></center>
<asp:label ID="lblStatus" runat="server"></asp:label></td>
</div>
</asp:Content>
--------------------------
Thank you!!!!!
I have created one master lovem.master and content lovec.aspx pages. In master I have the search textbox, radio buttons and Search button. In content page I have a gridview which should be populated when criteria is entered and 'look book' button is clicked on master page. The method to connect to database and populate content page's gridview is located in master page. When entered any character in textbox and selected either of title or author radio buttons and clicked 'Look book' , i'm getting the follwoing error.
Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.
Line 16: GridView mpGridview = new GridView();
Line 17:
Line 18: mpContentPlaceHolder = (ContentPlaceHolder)Master.FindControl("CPH1");
Please Help!!! the address of website is : http://ectweb2.cs.depaul.edu/sdesai8/lovec.aspx
My code for both pages is below.
lovem.master---------------------------------------------------------------------------------below------------------------------------------------------------------------------------------------------------------------- -
<%@ Master language="c#" %>
<%@ import Namespace="System.Data" %>
<%@ import Namespace="System.Data.OleDb" %>
<%@ import Namespace="System.Data.SqlClient"%>
<%@ import Namespace="System.Web.UI.WebControls"%>
<script language="c#" runat="server">
void startSearch(object sender, System.EventArgs e)
{
ContentPlaceHolder mpContentPlaceHolder = new ContentPlaceHolder();
GridView mpGridview = new GridView();
mpContentPlaceHolder = (ContentPlaceHolder)Master.FindControl("CPH1");
mpGridview = (GridView) mpContentPlaceHolder.FindControl("Gridview1");
string strSQL = "SELECT * FROM Books";
string strConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=e:\\ectserver\\ralbahra\\Database\\books.mdb";
if(SearchCat.Items[0].Selected)
{
strSQL = "SELECT * FROM Books WHERE ISBN like '%"+ Keyword.Text + "%'";
}
else
{
if(SearchCat.Items[1].Selected)
{
strSQL = "SELECT * FROM Books WHERE Author like '%"+ Keyword.Text + "%'";
}
else
{
if(SearchCat.Items[2].Selected)
{
strSQL = "SELECT * FROM Books WHERE BookName like '%"+ Keyword.Text + "%'";
}
}
}
string strResultsHolder;
strResultsHolder="";
OleDbConnection objConnection = new OleDbConnection(strConnection);
OleDbCommand objCommand = new OleDbCommand(strSQL, objConnection);
OleDbDataReader objDataReader;
try
{
objConnection.Open();
mpGridview.DataSource = objCommand.ExecuteReader();
mpGridview.DataBind();
objCommand.Connection.Close();
objCommand.Connection.Dispose();
}
catch (Exception ex)
{
}
objCommand.Connection.Close();
}
</script>
<html>
<form runat="server">
<center>Enter Keyword to Search</center> </br>
<center><asp:TextBox id="Keyword" width="300" runat="server"/></center>
<center><asp:RadioButtonList id="SearchCat" RepeatColumns="3" CellPadding="25" runat="server" RepeatDirection="Horizontal">
<asp:ListItem>Book Title</asp:ListItem>
<asp:ListItem>Author</asp:ListItem>
<asp:ListItem>ISBN</asp:ListItem>
</asp:RadioButtonList></center>
<asp:Button Text="Look Book" onclick="startSearch" type="submit" runat="server"/>
<asp:ContentPlaceHolder id="CPH1" runat="server">
</asp:ContentPlaceHolder>
</form>
</html>
lovec.aspx--------------------------------------------------------------------------------below-------------------------------------------------------------------------------------------------------------------------
<%@ Page MasterPageFile="lovem.master" %>
<%@ import Namespace="System.Data" %>
<%@ import Namespace="System.Data.OleDb" %>
<%@ import Namespace="System.Data.SqlClient"%>
<script language="c#" runat="server">
</script>
<asp:Content ContentPlaceHolderId="CPH1" runat="server">
<div>
<center><asp:GridView ID="GridView1" Runat="server" cellspacing="30" AutoGenerateColumns="False" CssClass="basix">
<Columns>
<asp:TemplateField ShowHeader="false">
<ItemTemplate>
<a href="http://ectweb2.cs.depaul.edu/sdesai8/List1alag.aspx?ISBN=<%# DataBinder.Eval(Container.DataItem, "ISBN") %>" />
<img src="<%# DataBinder.Eval(Container.DataItem, "imagelink") %>" Height=75 width=75>
</a>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField HeaderText="ISBN" DataField="ISBN"
></asp:BoundField>
<asp:HyperLinkField HeaderText="Book Title"
DataNavigateUrlFields="ISBN"
DataNavigateUrlFormatString=
"http://ectweb2.cs.depaul.edu/sdesai8/List1alag.aspx?ISBN={0}"
DataTextField="BookName">
</asp:HyperLinkField>
<asp:BoundField HeaderText="Author" DataField="Author"
></asp:BoundField>
<asp:BoundField HeaderText="Price" DataField="Price"
DataFormatString="{0:c}"></asp:BoundField>
</Columns>
</asp:GridView></center>
<asp:label ID="lblStatus" runat="server"></asp:label></td>
</div>
</asp:Content>
--------------------------
Thank you!!!!!