Monday, July 2, 2012

binding dynamic accordian pane in asp.net

Design page for VS2008

<asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
        </asp:ToolkitScriptManager>
        <asp:Accordion ID="Dynamic" runat="server" SelectedIndex="0"HeaderCssClass="headerAccordion" ContentCssClass="contentAccordion">
        </asp:Accordion>





Design page for VS2010

<asp:ScriptManager ID="ScriptManager1" runat="server">
        </asp:ScriptManager>      
        <asp:Accordion ID="Dynamic" runat="server" SelectedIndex="0"HeaderCssClass="headerAccordion" ContentCssClass="contentAccordion">
        </asp:Accordion> 
Add below line for css within <title></title>
<link href="Styles/accordion.css" rel="stylesheet" type="text/css" />




Add below line for css within

(you will get at attachment)
Code Behind
Retrieve value and put at datatable like below
string sql1 = "select * from Admin_Package_Details where Pak_Type='" + b + "'";
SqlConnection con = new SqlConnection(GetConnectionString());
SqlCommand cmd = new SqlCommand(sql, con);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
Now create dynamic accordion pane based on value with pane title
int i = 0;
for(i=0;i
function printing() {
window.print();
}

Now you can add link button with querystring like below
string a = lbTitle.Text;
string url = "querystring.aspx?";
url += "Item=" + a.ToString();
LinkButton lk;
lk=new LinkButton();
lk.Text="Booking";
lk.PostBackUrl = url;
add link button at accordion pane like below
pn.ContentContainer.Controls.Add(lk);

datatable filter using linq in asp.net c#.net

I go through lots of site for select query on DataTable. But most of the time I did not get a suitable solution. So, at last I use linq to filter data from datatable. So I share my code below:-



DataTable dt = new DataTable();
string sqlStatement1 = "select * from hsswith_view where cp_amount<='" + bug_amount + "' and no_of_days >='" + no_of_days + "' or ep_amount<='" + bug_amount + "' and no_of_days >='" + no_of_days + "'";
SqlCommand sqlCmd1 = new SqlCommand(sqlStatement1,connection); SqlDataAdapter sqlDa1 = new SqlDataAdapter(sqlCmd1);
sqlDa1.Fill(dt1);
var query = from r in dt1.AsEnumerable()
where r.Field("pax") == no_person
select new
{
entry_id = r["entry_id"].ToString(),
pax = r["pax"].ToString(),
package = r["package"].ToString(),
no_of_days = r["no_of_days"].ToString(),
cp_amount = r["cp_amount"].ToString(),
ep_amount = r["ep_amount"].ToString()
};
GridView1.DataSource = query;
GridView1.DataBind();


First of all I select data using one select query and fill it at datatable(dt1). Now I write linq query to extract data from dt1 DataTable and bind the values at GridView. These much.