Osman KURT

Kendime Not

ASP.Net de TreeView Kullanımı

Arkadaşlar bu yazımda size asp.net treeView kullanımını göstereceğim ve sonsuz bir menu yapısı oluşturmayı göstereceğim. İlk olarak veritabanımızı oluşturalım ve sayfalar diye bir tablo açalım. Daha sonra bu tablomuzun içine SayfaId,SayfaAd,Icerik ve root alanlarını açalım. Root altsayfalama yapmamıza yarayacak alanımız.
Şimdi alt kısımda yazacağım kodu lütfen Default.aspx sayfamıza yazalım.


    
	
		
    
	
    
    

Bu kodlarımızı yazdıktan sonra gelin şimdi asıl kodlara c# kodlarımıza geçelim.

DataTable dt = new DataTable();
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            SqlDataAdapter dap = new SqlDataAdapter("select SayfaId,SayfaAd,root from Sayfalar order by root", baglan.baglanti);
            dap.Fill(dt);
            populateData(TreeView1.Nodes[0], getrows("0"));

        }
    }
DataRowCollection getrows(string id)
    {
        DataView dw = new DataView(dt);
        dw.RowFilter = "root=" + id;
        return dw.ToTable().Rows;
    }

    void populateData(TreeNode node, DataRowCollection col)
    {
        foreach (DataRow row in col)
        {
            TreeNode n = new TreeNode();
            n.Text = row[1].ToString();
            n.Value = row[0].ToString();
            node.ChildNodes.Add(n);
            populateData(n, getrows(row[0].ToString()));
        }

    }
    protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
    {
        if (TreeView1.SelectedNode.Parent != null)
        {
            Response.Redirect("SayfaDetay.aspx?SayfaId=" + TreeView1.SelectedNode.Value);
        }
    }

 


Bu kodlarımızı da Default.aspx.cs sayfamıza yazıktan sonra artık işlem bitmiş olacak ve kullanıma hazır hale gelecek.
Görüşmek Üzere;
Osman KURT
Yazılım geliştirici ve Grafiker

Validation of viewstate MAC failed Hatası

'Validation of viewstate MAC failed' hatasi, sayfada uzun süre bekleyip, sayfayi tetikleyecek herhangi birseye tikladiginiz vakit karsiniza çikacaktir. Sayfa post edildigi vakit state'te takilip hata ekrani çikaracaktir.

"Validation of viewstate MAC failed. If this application is hosted by a Web Farm or cluster, ensure that <machineKey> configuration specifies the same validationKey and validation algorithm. AutoGenerate cannot be used in a cluster." gibi bir hata alıyorsanız;

Web confgi içinde System.Web altına;

<system>

<pages validateRequest="false" enableEventValidation="false" anableViewStateMac="false" viewStateEncrytionMode="Never">

</system>

evet arkadaşlar bu kodlarımızı webconfiğin içine yazdığımız da artık machinekey hatası almıyacağız.

Görüşmek Üzere;

Osman KURT

Yazılım Geliştirici ve grafiker

 

ASP.Net de Multiupload Olayı

Evet arkadaşlar bugün size asp.net de çokcakullandığımız bir olayın kısa yolunu alnatıcam. Eminim ki hepiniz yaptığınız siteler de yada projelerde resim yada dosya uploadı yapmışınızdır ve bunları tek tek yapmak çok sıkıcı bir iştir. İşte bu kodlar ve yazılımcının mahareti tam burada devreye giriyor ve işte multiupload kodları :D

İlk olarak projemizi oluşturalım ve default sayfamızı tasarlamay başlayalım.

<asp:Panel ID="Panel1" runat="server">

        </asp:Panel>

        <br />

        <asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" /><br />

        <asp:Label ID="Label1" runat="server" Text=""></asp:Label>


Şimdi ise default.aspx.cs satfasınayazıcamız kodlara bakalım;

 

protected void Page_Load(object sender, EventArgs e)
    {
        for (int i = 1; i <= 3; i++)//10 kere dön 
        {
            FileUpload myFileUpload = new FileUpload();//Yeni File Upload Kontrolünin instance'ni al 
            myFileUpload.ID = "Upload_" + i;//Erismek için ID'ni belirle 
            this.Panel1.Controls.Add(myFileUpload);//Kontrolü panel içine ekle 
        }
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        FileUpload myFileUpload;
        for (int i = 1; i <= 3; i++)
        {
            myFileUpload = ((FileUpload)Panel1.FindControl("upload_" + i.ToString()));
            if (myFileUpload.HasFile)
            {
                myFileUpload.SaveAs(Server.MapPath("images/" + myFileUpload.FileName));
                OleDbConnection cnn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\db.mdb;Persist Security Info=True");
                OleDbCommand cmd = new OleDbCommand("insert into Resim (Resim) values ('" + myFileUpload.FileName + "')", cnn);
                cnn.Open();
                cmd.ExecuteNonQuery();
                cnn.Close();
            }
        }
        Label1.Text = "İşlem Başarıyla Gerçekleşti";
    }

Kodlarımız bu kadar arkadaşlar üst kısımda ki kodları eksiksiz bir şekilde yazdığımız da sizde artık resim upload etmenin kolaylığına varacaksınız.

Görüşmek Üzere;

Osman KURT

Yazılım Geliştirici ve Grafiker