BAĞLANTILARIM

Takip Edin:

0

SQL'de VARBINARY tipinde tutulan ziplenmiş dosyayı indirme

Cuma, Şubat 24, 2017 / / , , ,

protected void DosyaIslem(string islemYapilacakDosyaId)
        {
            try
            {
                VeriMsSQL.Islem islem = new VeriMsSQL.Islem();
                DataTable dt = islem.DosyaBilgi(islemYapilacakDosyaId);
                if (dt.Rows.Count > 0)
                {
                    DataRow dr = dt.Rows[0];
                    string dosya = dr["Dosya"].ToString();
                    string dosyaAd = dr["DosyaAd"].ToString();
                    byte[] bytes = (byte[])dr["Dosya"];
                    Response.Clear();
                    Response.AddHeader("content-disposition", "attachment;filename=" + dosyaAd + ".zip");
                    Response.ContentType = "application/zip";
                    Response.BinaryWrite(bytes);
                    Response.End();
                }
                dt.Dispose();
            }
            catch (Exception ex)
            {
                lblIslemSonuc.Text = ex.Message;
                lblIslemSonuc.CssClass = "islemHatali";
                lblIslemSonuc.Visible = true;
            }
        }

C#'ta dosyayı zip'e çevirme ve ziplenmiş dosyayı varbinary tipinde sql de tutma 

0

C#'ta dosyayı zip'e çevirme ve ziplenmiş dosyayı VARBINARY tipinde sql de tutma

Cuma, Şubat 24, 2017 / / , , ,

C# ile bir dosyayı .zip formatına çevirmek için çeşitli dll dosyayları bulunmakta. Buradaki örnekte Ionic DotNetZip kullanıldı. https://dotnetzip.codeplex.com/

   protected void DosyaYukleSql()
        {
            try
            {
                Guid guId = Guid.NewGuid();
                string dosyaAd = System.IO.Path.GetFileName(fileDosya.FileName);
                string dosyaUzanti = System.IO.Path.GetExtension(dosyaAd);
                dosya = guId + dosyaUzanti;  //dosya adını Guid ile belirledik              
                    using (ZipFile zip = new ZipFile())
                    {
                        zip.AddEntry(dosya, fileDosya.PostedFile.InputStream);
                        zip.Save(Server.MapPath("/upload/zip/") + guId + ".zip");
                        //zipi binary yap
                        byte[] byteZip = File.ReadAllBytes(Server.MapPath("/upload/zip/") + guId + ".zip");
//veritabanına ekle
                        VeriMsSQL.Islem islem = new VeriMsSQL.Islem();
                        islem.DosyaEkle(guId.ToString(), byteZip, kayitId: dosyaKayitId);
                    }
                    File.Delete(Server.MapPath("/upload/zip/") + guId + ".zip"); //klasördeki zipli dosyayı sil
            }
            catch (Exception ex)
            {
                lblIslemSonuc.Text = ex.Message;
                lblIslemSonuc.CssClass = "islemHatali";
                lblIslemSonuc.Visible = true;
            }
        }



SQL'de varbinary tipinde tutulan ziplenmiş dosyayı indirme

0

Html elemanları, Asp.net Kontrolü olarak kullanmak

Cumartesi, Aralık 17, 2016 / / ,

Asp.net ile web siteleri geliştirirken bazı durumlarda Asp.net kontrolü yerine ona karşılık gelen Html elemanını kullanmak esneklik sağlayabilir.

Asp.net kontrolleri arasında yer alan LinkButton, Html içinde <a> elemanına dönüşüyorsa,
Asp.net kontrolleri arasında yer alan Panel, Html içinde <div> elemanına dönüşüyorsa,
Bu durumda tasarım tarafında kullanılmış bir Panel kontrolüne kod tarafında
panelDeneme.Attributes.Add(“style”,”display:none;”); şeklinde bir özellik atayabiliriz. Bu ne işe yarar?
Örneğin Asp.net kontrollerinin Visible.false özelliğine bağlı kalmadan Javascript ile göster-gizle yapmak istediğimiz durumlarda yukarıdaki kod işimizi çözmüş olur. Çünkü kontrollerin visible.false özelliği, yapmak istediğimizle birebir aynı sonucu vermemekte. Visible.false verilen kontrol Html kaynağında üretilmemiş oluyor. Bizim istediğimiz ise Html kaynakta bulunan bir elemanın tarayıcıda gizli olması ya da tam tersi görünüyorken gizlenmesi.

Tersten gidecek olursak:

Sayfaya Html olarak yazılan
<a href=”Deneme.aspx”>Deneme</a> elemanını,
<a id=”linkMenu” runat=”server” href='<%#Eval("SayfaUrl") %>'><%#Eval("SayfaAd") %></a> şeklinde değiştirerek (yani runat=”server” ve bir id tanımı ekleyerek) Kod tarafında bir Asp.net kontrolü gibi kullanabiliriz. Burada yapmak istediğim linkMenu isimli <a> elemanını Asp.net Repeater kontrolü içinde kullanmak ve kullanıcı tarafından tıklanan menünün seçili olmasını(stilinin değişmesini) sağlamak.

Asp.net Repeater kontrolünün OnItemDataBound olayı içinden <a> elemanımıza erişelim.

protected void repeatMenu_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            try
            {            
                    HtmlAnchor linkMenu = e.Item.FindControl("linkMenu") as HtmlAnchor; //eriştik
          }
            catch (Exception)
            {
            }
        }

Kullanıcının tıkladığı sayfa açıldığında ilgili <a> elemanını seçili yapalım.

protected void repeatMenu_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            try
            {
             string  menuSayfaId = DataBinder.Eval(e.Item.DataItem, "SayfaId").ToString();
string cagrilanSayfaId = SayfaBilgi(cagrilanSayfaUrl); //çağrılan sayfaUrl sinden Id bilgisi bulundu varsaydık.
                //seçileni aktif yap
                if (cagrilanSayfaId == menuSayfaId)
                {
                    HtmlAnchor linkMenu = e.Item.FindControl("linkMenu") as HtmlAnchor;
                    linkMenu.Attributes.Add("style", "color: #e06c5f; background-color: #eeeff3;");
                }
            }
            catch (Exception)
            {
            }
        }

Hangi Html elemanın Asp.net’te nasıl çağrılacağı ile ilgili (burada <a> elemanı HtmlAnchor şeklinde çağrıldı) tutorialspoint.com adresinde bulduğum içerik şu şekilde;

Control NameHTML tag
HtmlHead<head>element
HtmlInputButton<input type=button|submit|reset>
HtmlInputCheckbox<input type=checkbox>
HtmlInputFile<input type = file>
HtmlInputHidden<input type = hidden>
HtmlInputImage<input type = image>
HtmlInputPassword<input type = password>
HtmlInputRadioButton<input type = radio>
HtmlInputReset<input type = reset>
HtmlText<input type = text|password>
HtmlImage<img> element
HtmlLink<link> element
HtmlAnchor<a> element
HtmlButton<button> element
HtmlForm<form> element
HtmlTable<table> element
HtmlTableCell<td> and <th>
HtmlTableRow<tr> element
HtmlTitle<title> element
HtmlSelect<select> element
HtmlGenericControlAll HTML controls not listed

0

Asp.Net ile Javascript fonksiyonu çağırırken Eval değeri kullanma

Çarşamba, Ekim 26, 2016 / / , ,

ListView içindeki Checkbox kontrolü tıklandığı zaman; 

<asp:CheckBox ID="cbSecim" runat="server" onclick='<%# "Sec(" +Eval("UrunId") + " );" %>'/>

Javascript kodu;

<script type="text/javascript">
function Sec(secilenId) {

try {
alert(secilenId);
}
catch (e) {
    alert(e.message);
          }
}
</script>

0

Asp.net Jquery AutoComplete Otomatik Tamamlama

Salı, Haziran 28, 2016 / / , , , ,

//Arama TextBox

<asp:TextBox ID="txtArama" runat="server" CssClass="arama" autocomplete="off"></asp:TextBox>   

//Kullanılan js ve css

    <script src="js/jquery.js"></script>
    <script src="js/jquery-ui.min.js"></script>
    <link href="js/jquery-ui.min.css" rel="stylesheet" />

//JavaScript

<script type="text/javascript">
        $(document).ready(function () {
            $("#<%=txtArama.ClientID %>").autocomplete({
                source: function (request, response) {
                    $.ajax({
                        url: 'WebAra.aspx/UrunGetir',
                        data: "{ 'arananKelime': '" + request.term + "'}",
                        dataType: "json",
                        type: "POST",
                        contentType: "application/json; charset=utf-8",
                        success: function (data) {
                            response($.map(data.d, function (item) {
                                return {
                                    label: item.split('-')[0],
                                    val: item.split('-')[1]
                                }
                            }))
                        },
                        error: function (response) {
                            //alert(response.responseText);
                        },
                        failure: function (response) {
                            //alert(response.responseText);
                        }
                    });
                },
                select: function (event, ui) {
                    var gidilecekItemUrl = ui.item.val;
                    window.location.href = 'Urun.aspx?' + gidilecekItemUrl;
                },
                minLength: 1
            });
        });
    </script>


//WebAra.aspx


[WebMethod(EnableSession = true)] //webmethod içinde session kullanmak gerekirse (EnableSession = true)
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public static string[] UrunGetir(string arananKelime)
{
List<string> urunler = new List<string>();

//HttpContext.Current.Session["VERITABANI_ADI"].ToString() //WebMethod içinde Session kullanımı
//arananKelime sorguda ilgili yere

//DataTable dt = ...
//DataRow dr = ...
string urunUrl = "kategoriId=" + dr["KategoriId"].ToString() + "&urunId=" + dr["UrunId"].ToString();
string urunAd = dr["UrunAd"].ToString();
urunler.Add(string.Format("{0}-{1}", urunAd, urunUrl));
return urunler.ToArray();
}

0

FANCYBOX IFRAME PENCERESİ İÇİNDE TIKLANAN BUTON SONRASI IFRAME'İN KOD TARAFINDAN KAPATILIP, ASIL SAYFANIN YENİLENMESİ

Cumartesi, Haziran 11, 2016 / / , , ,

Asıl Sayfamız

        <script type="text/javascript">
            $(document).ready(function () {
                //fancybox
                $(".various").fancybox({
                    maxWidth: 850,
                    maxHeight: 650,
                    fitToView: false,
                    width: '70%',
                    height: '70%',
                    autoSize: false,
                    closeClick: false,
                    openEffect: 'none',
                    closeEffect: 'none',
                    afterShow: function () {
                        $('.fancybox-iframe').contents().find('#button').click(function () {
                            window.parent.location.reload();
                        });
                    }

                });
            });
    </script>

Iframe içinde ilgili yere;

Yapılacak işlemler sonrası Fancybox Iframe penceresini kod tarafından kapatmak için aşağıdaki kod kullanılabilir.

ScriptManager.RegisterStartupScript(this, GetType(), "", "parent.$.fancybox.close();", true); 

1

Asp.net ScriptManager TimeoutException hatası ve çözümü

Perşembe, Mayıs 26, 2016 / / , ,

Script Manager kullanılan sayfalarda timeout olma durumunda ScriptManager kontrolünün kendi TimeOut özelliği aşağıdaki şekilde ayarlanabilir.

<asp:ScriptManager ID="ScriptManager1" runat="server" AsyncPostBackTimeout="900"></asp:ScriptManager>

Bu özellik belirtilmezse varsayılan süre 90 saniye (1.5 min)

SON YORUMLAR