Here i am Describing About how to create Ajax Tabcontainer dynamically as well as how to bind repeater inside that Tab.Finally i have to bind data with inner linkbuttons of repeater from database.
Here is my Database diagram:-
Here is my Page OverView:-
Here is my Source code:-
Here is my Page Code Behind:-
Here is my Database diagram:-
Here is my Page OverView:-
Here is my Source code:-
<%@ Page
Language="C#"
AutoEventWireup="true"
CodeFile="DynamicTabWithRepeaterAndLinkButton.aspx.cs"
Inherits="DynamicTabWithRepeaterAndLinkButton"
%>
<!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>Om Namah Shivaya</title>
<h1>Dynamic Ajax TabContainer With dynamic repeater
Having linkbuttons With click Event(created by Shibashish Mohanty)</h1>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1"
runat="server">
</asp:ScriptManager>
<div>
<asp:PlaceHolder ID="PlaceHolder1"
runat="server"></asp:PlaceHolder>
</div>
</form>
</body>
</html>
Here is my Page Code Behind:-
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using AjaxControlToolkit;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using System.Web.UI.HtmlControls;
public partial class DynamicTabWithRepeaterAndLinkButton
: System.Web.UI.Page
{
AjaxControlToolkit.TabContainer
DynamicTab;
protected void
Page_Load(object sender, EventArgs e)
{
DataClassesDataContext dc = new DataClassesDataContext();
var x = GetTabInfo();
for (int i = 0; i
< x.Count(); i++)
{
Table tb1 = new Table();
TableRow tr1 = new
TableRow();
TableCell tc1 = new
TableCell();
DynamicTab.Tabs[i].Controls.Add(tb1);
var y = GetNewItemInfo(x[i].PrID);
#region comment for Gridview
////DropDownList drplist = new DropDownList();
//GridView datalisting = new GridView();
////datalisting.RepeatColumns = 1;
////for (int j = 0; j < y.Count(); j++)
////{//
//// datalisting.ID = y[j].MenuID.ToString();
//datalisting.DataSource = y;
//datalisting.DataBind();
//// datalisting.ItemTemplate =
Page.LoadTemplate("MenuData.ascx"); // what should I do here??
////
////drplist.ID = y[j].MenuID.ToString();
////drplist.DataSource = y;
////drplist.DataTextField = "MenuName";
////drplist.DataBind();
////drplist.AutoPostBack = true;
////if (drplist.SelectedIndex == 1)
////{
//// Label1.Text
="hello Friend";
////}
////}
//tc1.Controls.Add(datalisting);
//tr1.Cells.Add(tc1);
//tb1.Rows.Add(tr1);
#endregion
#region comment for Repeater
string connecStr = ConfigurationManager.ConnectionStrings["TestConnectionString"].ConnectionString;
SqlConnection con = new
SqlConnection(connecStr);
SqlDataAdapter da = new
SqlDataAdapter("select
* from ProjectMenu where PrID ="
+ x[i].PrID + "", con);
DataSet myDataSet = new
DataSet();
da.Fill(myDataSet);
Repeater Repeater1 = new
Repeater();
Repeater1.DataSource = myDataSet;
Repeater1.DataBind();
foreach (RepeaterItem
repeatItem in Repeater1.Items)
{
// if condition to add HeaderTemplate
Dynamically only Once
if (repeatItem.ItemIndex == 0)
{
RepeaterItem headerItem = new RepeaterItem(repeatItem.ItemIndex,
ListItemType.Header);
HtmlGenericControl hTag = new HtmlGenericControl("h4");
hTag.InnerHtml = "Menu Names";
repeatItem.Controls.Add(hTag);
}
// Add ItemTemplate DataItems Dynamically
RepeaterItem repeaterItem = new RepeaterItem(repeatItem.ItemIndex,
ListItemType.Item);
LinkButton lKbt = new LinkButton();
lKbt.ID = string.Format("{0}",
myDataSet.Tables[0].Rows[repeatItem.ItemIndex]["MenuID"]);
lKbt.CommandArgument = lKbt.ID;
lKbt.Command += new CommandEventHandler(lKbt_Command);
lKbt.Text = string.Format("{0} {1} <br/>", myDataSet.Tables[0].Rows[repeatItem.ItemIndex]["MenuName"],
myDataSet.Tables[0].Rows[repeatItem.ItemIndex]["CreatedDate"]);
Label lbl = new
Label();
lbl.Text = string.Format("{0} ",
myDataSet.Tables[0].Rows[repeatItem.ItemIndex]["CreatedDate"]);
Label lb = new
Label();
lb.Text = "
";
repeatItem.Controls.Add(lbl);
repeatItem.Controls.Add(lb);
repeatItem.Controls.Add(lKbt);
// Add SeparatorTemplate Dynamically
repeaterItem = new RepeaterItem(repeatItem.ItemIndex, ListItemType.Separator);
//If you want to separate Each row With a
header then uncomment below Line
//LiteralControl ltrlHR =new LiteralControl();
// ltrlHR.Text = "<hr />";
//repeatItem.Controls.Add(ltrlHR);
}
tc1.Controls.Add(Repeater1);
tr1.Cells.Add(tc1);
tb1.Rows.Add(tr1);
#endregion
}
PlaceHolder1.Controls.Add(DynamicTab);
}
protected void
Page_Init(object sender, EventArgs e)
{
try { createTab(); }
catch { }
}
private List<Project> GetTabInfo()
{
using (DataClassesDataContext
context = new DataClassesDataContext())
{
return (from c in context.Projects
select c).ToList();
}
}
private List<ProjectMenu> GetNewItemInfo(int Proid)
{
using (DataClassesDataContext
context = new DataClassesDataContext())
{
return (from n in context.ProjectMenus
where n.PrID == Proid
select n).ToList();
}
}
private void
createTab()
{
DynamicTab = new AjaxControlToolkit.TabContainer();
DataClassesDataContext dc = new DataClassesDataContext();
var x = GetTabInfo();
for (int i = 0; i
< x.Count(); i++)
{
TabPanel TbPnlCategry = new
TabPanel();
TbPnlCategry.HeaderText = x[i].PrName;
TbPnlCategry.ID = x[i].PrID.ToString();
DynamicTab.Tabs.Add(TbPnlCategry);
}
}
void lKbt_Command(object
sender, CommandEventArgs e)
{
Page.RegisterStartupScript("ScriptDescription",
"<script
type=\"text/javascript\">alert('" +
e.CommandArgument.ToString() +" "+
"Shibashish Mohanty');</script>");
}
}
After running The page It will display As:-
After Click on The Linkbutton It will display As:-
No comments:
Post a Comment
Please don't spam, spam comments is not allowed here.