venus najad

venus najad

  • 1.3k
  • 414
  • 27.6k

Global variable's value is unchanged, linkbutton click doesnt work

Sep 9 2024 12:24 PM

hello everyone. 

i have a gridview with 2000 rows. i have filled a page and it fills dynamically very well. one of its object is a linkbutton and when i select it, it opens the requiered page properly.

1. i have changed the page in matrix form with 6 objects in each page. suddently, the libkbutton click has lost it function???!!! may i ask you please see in the attached codes and let me know the reason? i appreciate any correction in form of codes, very kind regards

2. i have used page indexes for pages. but the global value, which is 0 from the beginning, remains 0, even i increament or decreament in next/previous buttons click methods. Why??!! please see the attached codes and i appreciate corrections with codes, very kind regards

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Collections;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using AjaxControlToolkit;

namespace evenemang
{
    public partial class locals : System.Web.UI.Page
    {
        string mainconn = ConfigurationManager.ConnectionStrings["CustomerDB"].ConnectionString;//@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\venus-messiah\source\repos\WebAd\App_Data\CustomerDB.mdf;Integrated Security=True";//ConfigurationManager.ConnectionStrings["connectionstring"].ConnectionString;
        SqlConnection sqlcon = new SqlConnection(ConfigurationManager.ConnectionStrings["CustomerDB"].ConnectionString);//@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\venus-messiah\source\repos\WebAd\App_Data\CustomerDB.mdf;Integrated Security=True");  //@"Data Source=d:\web\localuser\myearn.org\world\App_Data\customerDB.mdf;Integrated Security=True";           
        DataTable dt = new DataTable();
        string search, namn, nr;
        int m = 0, Pindex=0, Psize=6;
        string[] name = new string[9000];
        string[] image = new string[9000];
        string[] Email = new string[9000];
        
        


        Sorting objSorting = new Sorting();


        private string SortDirection
        {
            get { return ViewState["SortDirection"] != null ? ViewState["SortDirection"].ToString() : "ASC"; }
            set { ViewState["SortDirection"] = value; }
        }

        

        protected void Page_Load(object sender, EventArgs e)
        {
            
            Session["result"] = null;
            if (Session["search"] != null) //from search
            {
                search = Session["search"].ToString();
                if (Session["Name"] != null && search == "search")
                {
                    namn = Session["Name"].ToString();
                    BindGridView(1);
                    Session["search"] = null;
                }
                else
                    lblMessage.Text = "No title!";
            }
            
            if (!IsPostBack)
            {
                Session["result"] = null;
                BindGridView(0);
            }

            FillPage(Pindex, Psize);            
        }



        void BindGridView(int n)
        {
            SqlCommand commandad = new SqlCommand("", sqlcon);
            if (n == 0)
            {
                string query = string.Format("Select * from customerad");
                commandad.CommandText = query;
            }
            else if (n == 1)
            {
                string query = string.Format("Select * from customerad where Name='{0}'", namn);
                commandad.CommandText = query;
            }

            SqlDataAdapter da = new SqlDataAdapter(commandad);
            DataTable dt = new DataTable();
            da.Fill(dt);
            GridView1.DataSource = dt;
            GridView1.DataBind();
            Session["Name"] = null;
        }


        string bringreview(string k)
        {
            string betyg = "";

            string q = string.Format("Select * from tblrating where Email='{0}'", k);
            using (var conad = new SqlConnection(mainconn))
            using (var comandad = new SqlCommand(q, conad))
            {
                conad.Open();

                SqlDataReader reader = comandad.ExecuteReader();
                while (reader.Read())
                {
                    betyg = (reader.GetInt32(4)).ToString();
                }
                conad.Close();
            }
            return betyg;
        }

        protected void FillPage(int pageindex, int pagesize)
        {
            
            HtmlForm form2 = new HtmlForm();
            TableRow row = null;

            int col = 0, rows=0; 
            int mm= GridView1.Rows.Count/6;
            int totalColumns = 3;
            int totalrows = 2;
            for ( int i = pageindex*pagesize; i<(1+pageindex)*pagesize && i < GridView1.Rows.Count; i++)
            {
                if (col == 0)
                {
                    row = new TableRow();
                    mytable.Rows.Add(row); // Add a new row to the table
                }
                TableCell cell = new TableCell();
                Panel panel = new Panel(); // Add your controls to the panel here
                nr = GridView1.Rows[i].Cells[0].Text; //id
                m = Convert.ToInt32(nr); //id

                LinkButton adName = new LinkButton();
                adName.Text = nr + ": " + GridView1.Rows[i].Cells[1].Text; //+ ": Name: " 
                name[i] = GridView1.Rows[i].Cells[1].Text;
                panel.Controls.Add(adName);
                adName.Click += new EventHandler(this.adName_Click);
                

                ImageMap ImageMap1 = new ImageMap();
                ImageMap1.Height = 150;
                ImageMap1.Width = 150;
                ImageMap1.ImageUrl = GridView1.Rows[i].Cells[11].Text;
                image[i] = GridView1.Rows[i].Cells[11].Text;
                panel.Controls.Add(ImageMap1);


                Label adprice = new Label();
                adprice.Text = " pris: " + GridView1.Rows[i].Cells[9].Text + " kr";
                panel.Controls.Add(adprice);


                Label adSeat = new Label();
                adSeat.Text = " Sittande: " + GridView1.Rows[i].Cells[12].Text;
                panel.Controls.Add(adSeat);


                Label adStand = new Label();
                adStand.Text = " Stående: " + GridView1.Rows[i].Cells[13].Text;
                panel.Controls.Add(adStand);


                Label adbetyg = new Label();
                adbetyg.Text = " Betyg: " + bringreview(GridView1.Rows[i].Cells[3].Text);
                panel.Controls.Add(adbetyg);


                Label adEmail = new Label();
                adEmail.Text = " Email: " + GridView1.Rows[i].Cells[3].Text;
                Email[i] = GridView1.Rows[i].Cells[3].Text;
                //string betyg = bringreview(Email[i]);
                adEmail.Visible = false;
                panel.Controls.Add(adEmail);


                cell.Controls.Add(panel);
                row.Cells.Add(cell);
                this.form2.Controls.Add(mytable);


                col++;
                if (col == totalColumns) //a row is filled
                { 
                    col = 0;
                    rows++;
                    if (rows == totalrows) //all rows all filled (2 rows)
                    {
                        rows = 0;                        
                        if (mm == 0 && pageindex==0) //items of all pages
                        {
                            lblPage.Text = (pageindex+1).ToString();
                            btnPrev.Visible = false;
                            btnNext.Visible = false;
                        }                            
                        else if(mm != 0 && pageindex == 0)
                        {
                            lblPage.Text = (pageindex + 1).ToString();
                            //lnkbNext.Text = "Next";
                            btnPrev.Visible = false;
                            btnNext.Visible = true;                            
                        }                        
                        else if(mm != 0 && pageindex > 0 && pageindex < mm + 1)
                        {
                            lblPage.Text = (pageindex + 1).ToString();
                            //lnkbNext.Text = "Next";
                            //lnkbPrev.Text = "Previous";
                            btnPrev.Visible = true;
                            btnNext.Visible = true;
                        }
                        else if (mm != 0 && pageindex == mm + 1)
                        {
                            lblPage.Text = (pageindex + 1).ToString();
                            //lnkbNext.Text = "Next";
                            //lnkbPrev.Text = "Previous";
                            btnPrev.Visible = true;
                            btnNext.Visible = false;

                        }
                    }                       
                }
            }            
        }

        protected void btnPrev_Click(object sender, EventArgs e)
        {            
            Pindex--; //it becomes -1 becasue Pindex remains 0
            BindGridView(0);
            FillPage(Pindex, Psize);
        }

        protected void btnNext_Click(object sender, EventArgs e)
        {
            Pindex++; //it becomes 1 becasue Pindex remains 0
            BindGridView(0);
            FillPage(Pindex, Psize);
        }

        private void adName_Click(object sender, EventArgs e)
        {
            LinkButton adName = sender as LinkButton;
            var s1 = adName.Text.Split(':');
            Session["nr"] = s1[0];
            Session["Image"] = image[Convert.ToInt32(s1[0]) - 1];
            Server.Transfer("adpage.aspx");
        }

        
        
    }
}

 


Answers (3)