Hello.
I have a nested GridView inside of a DataList. I need to enable the paging control of the GridView, but I have no idea where to put the code for it to work. Also I would like to create a function which will do the following: when a user will click on a specific row on the GridView, he will be redirected for the appropriate page. I tried to find answers using google, but I didn't success to understand the samples that I found.
Here is my code:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class SearchCDs : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
localhost.Service my = new localhost.Service();
DataTable dt = my.BringTable("CDs", "*");
DataTable dtgv1 = my.BringTable("Songs", "*");
DataTable dtgv2 = my.BringTable("Songs", "*");
DataList1.DataSource = dt;
DataList1.DataBind();
string[] arrplaylist = null;
for (int i = 0; i < dt.Rows.Count; i++)
{
arrplaylist = dt.Rows[i][2].ToString().Split(',');
for (int j = 0; j < arrplaylist.Length; j++)
{
for (int z = 0; z < dtgv1.Rows.Count; z++)
{
if (dtgv1.Rows[z][0].GetHashCode() == System.Convert.ToInt32(arrplaylist[j], 10))
dtgv1.Rows.RemoveAt(z);
}
}
for (int j = 0; j < dtgv1.Rows.Count; j++)
{
for (int z = 0; z < dtgv2.Rows.Count; z++)
{
if (dtgv1.Rows[j][0].GetHashCode() == dtgv2.Rows[z][0].GetHashCode())
dtgv2.Rows.RemoveAt(z);
}
}
((GridView)DataList1.Items[i].FindControl("gr")).DataSource = dtgv2;
((GridView)DataList1.Items[i].FindControl("gr")).DataBind();
dtgv1 = my.BringTable("Songs", "*");
dtgv2 = my.BringTable("Songs", "*");
}
}
}
protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e)
{
if (e.CommandName == "shownhide")
{
if (((Button)(DataList1.Items[e.Item.ItemIndex].FindControl("inf"))).Text.Equals("More Info"))
{
((Button)(DataList1.Items[e.Item.ItemIndex].FindControl("inf"))).Text = "Less Info";
((GridView)(DataList1.Items[e.Item.ItemIndex].FindControl("gr"))).Visible = true;
for (int i = 0; i < DataList1.Items.Count; i++)
{
if (i != e.Item.ItemIndex)
{
((Button)(DataList1.Items[i].FindControl("inf"))).Text = "More Info";
((GridView)(DataList1.Items[i].FindControl("gr"))).Visible = false;
}
}
}
else
{
((Button)(DataList1.Items[e.Item.ItemIndex].FindControl("inf"))).Text = "More Info";
((GridView)(DataList1.Items[e.Item.ItemIndex].FindControl("gr"))).Visible = false;
}
}
}
}
Please guide me where and what exactly to add to this code in order that the paging function and the select function will work properly. Please write in C#.
Thanks.
Sorry I'm a newbie here and accidentally wrote here and not in asp.net section. I have already posted the thread where it needs to be. Moderators please delete it.