Use this code
MasterPageMain.master
<%@ Master Language="C#" AutoEventWireup="true" CodeFile="MasterPageMain.master.cs"
Inherits="MasterPageMain" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<asp:ContentPlaceHolder ID="head" runat="server">
</asp:ContentPlaceHolder>
</head>
<body>
<form id="form1" runat="server">
<div>
<table>
<tr>
<td>
<asp:TextBox runat="server" ID="txtSearch"></asp:TextBox>
</td>
<td>
<asp:Button runat="server" ID="btnSearch" Text="Search" />
</td>
</tr>
</table>
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>
</div>
</form>
</body>
</html
>
MasterPageMain.master.cs
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class MasterPageMain : System.Web.UI.MasterPage
{
protected void Page_Load(object sender, EventArgs e)
{
}
public Button refbtnSearch
{
get { return btnSearch; }
}
public TextBox reftxtSearch
{
get { return txtSearch; }
}
}
MasterPageCategory.master
<%@ Master Language="C#" MasterPageFile="~/MasterPageMain.master" AutoEventWireup="true"
CodeFile="MasterPageCategory.master.cs" Inherits="MasterPageCategory" %>
<%@ MasterType VirtualPath="~/MasterPageMain.master" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server">
<asp:ContentPlaceHolder ID="head" runat="server">
</asp:ContentPlaceHolder>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>
</asp:Content
>
MasterPageCategory.master.cs
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class MasterPageCategory : System.Web.UI.MasterPage
{
protected void Page_Load(object sender, EventArgs e)
{
}
public Button refbtnSearch
{
get { return Master.refbtnSearch; }
}
public TextBox reftxtSearch
{
get { return Master.reftxtSearch; }
}
}
SearchResults.aspx
<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPageCategory.master" AutoEventWireup="true"
CodeFile="SearchResults.aspx.cs" Inherits="SearchResults" %>
<%@ MasterType VirtualPath="~/MasterPageCategory.master" %>
<%----%>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server">
</asp:Content>
<asp:Content ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<table>
<tr>
<td>
<asp:Repeater ID="Repeater1" runat="server">
<HeaderTemplate>
<table border="1" width="100%">
<tr>
<th>
ID
</th>
<th>
Name
</th>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td>
<%# Eval("Id") %>
</td>
<td>
<%# Eval("Name")%>
</td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
</td>
</tr>
</table>
</asp:Content
>
SearchResults.aspx.cs
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
public partial class SearchResults : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Repeater1.DataSource = getData();
Repeater1.DataBind();
}
Master.refbtnSearch.Click += new EventHandler(doSearchMaster);
}
private DataTable getData()
{
DataTable dt = new DataTable();
if (ViewState["dt"] != null)
dt = (DataTable)ViewState["dt"];
else
{
dt.Columns.Add("Id");
dt.Columns.Add("Name");
for (int i = 0; i < 20; i++)
{
DataRow dr = dt.NewRow();
dr["Id"] = i;
dr["Name"] = "Name-" + i.ToString();
dt.Rows.Add(dr);
}
ViewState["dt"] = dt;
}
return dt;
}
public void doSearchMaster(object sender, EventArgs e)
{
DataTable dt = getData();
DataView dv = new DataView(dt);
dv.RowFilter = "Name LIKE '%" + Master.reftxtSearch.Text.Trim() + "%'";
Repeater1.DataSource = dv.ToTable();
Repeater1.DataBind();
}
}