16 Mayıs 2011 Pazartesi

oldu mu?

27 Nisan 2011 Çarşamba

Merhaba

güzellikler her yerde Smile

3 Ocak 2010 Pazar

Bu yazımızda Ajax Kontrollerinden 'AutoComplateExtender' bileşeninin kullanımını bir örnek üzerinden anlamaya çalışacağız.
Senaryomuz textbox içerisine yazdığımız karakterlerin web servis üzerinde oluşturduğumuz char dizisi içerisinden rasgele olarak seçilenleri ile tamamlanmasını sağlamak.
Bu bileşeni ihtiyacımız doğrultusunda özelleştirerek veri tabanı üzerinden getireceğimiz verilerle de doldurabiliriz. Daha önceki yazılarımızda böylebir senaryo üzerinde durmuştuk.
VisualStudio içinde AJAXEnabledWebApplication olarak başlattığımız projemizin Default.aspx sayfası içerisindeki 'ScriptManager' bileşeni altına bir tane textbox, bir tanede AutoComplateExtender sürüklüyoruz. Daha sonra projemize Add New Item deyip bir tane WebService.asmx ekliyoruz. Bu sayfada text box içerisine girilen karaktarleri rasgeleleriyle tamamlamayı sağlayacak olan GetCompletionList metodunu yazacağız.

[WebMethod]
public string[] GetCompletionList(string prefixText, int count)
{  
    Random random = new Random();
    List<string> items = new List<string>(count);
    for (int i = 0; i < count; i++)
    {
        char c1 = (char)random.Next(65, 90);
        char c2 = (char)random.Next(97, 122);
        char c3 = (char)random.Next(97, 122);
        items.Add(prefixText + c1 + c2 + c3);
    }
    return items.ToArray();
}

Görüldüğü gibi string bir dizi döndüren bir metot yazıyoruz. Bu dizi 3 elemanlı. 'c1' Ascii Kodu 65 ile 90 arasında (büyük harfler) olanlarından rasgele seçilmiş karakteri temsil ediyor. 'c2' ve 'c3' te aynı şekilde 97 ile 122 arasındakileri (küçük harfler).
Web servis içini yukarıdaki gibi düzenledikten sonra ScriptManager bileşenini aşağıdaki şekilde düzenliyoruz.

<asp:ScriptManager ID="ScriptManager1" runat="server">
    <Services>
        <asp:ServiceReference Path="~/WebService.asmx" />
    </Services>
</asp:ScriptManager>

AutoComplateExtender bileşeninin özelliklerinde de aşağıdaki düzenlemeyi yaptıktan sonra :

<cc1:AutoCompleteExtender ID="AutoCompleteExtender1" runat="server"
    TargetControlID="TextBox1"
    ServicePath="WebService.asmx"
    ServiceMethod="GetCompletionList
    MinimumPrefixLength="2" CompletionInterval="1000"
    EnableCaching="true"
    CompletionSetCount="12">
</cc1:AutoCompleteExtender>
<asp:TextBox ID="TextBox1" runat="server"/>

Projemizi çalıştırabiliriz. 

autoComplate
Sayfa görüntümüz...
Umarım sizin için yararlı olur..

2 Ocak 2010 Cumartesi

Bu yazımızda Ajax kontrollerinden 'ConfirmButtonExtender' kullanımına balacağız.
Bu kontrol çalışma esnasında bizim istediğimiz bir kontrolün tetiklemesi ile sayfada onay penceresi açar. İhtiyaçlarımız doğrultusunda çok çeşitli şekilde özelleştirebilmemize olanak sağlayan önemli bir kontroldür. Daha anlaşılır olması açısından örnek üzerinden gidersek :

VisualStudio içinde AJAXEnabledWebApplication olarak başlattığımız projemizin Default.aspx sayfasının içine, birer tane 'Label', 'Button', 'ConfirmButtonExtender' sürüklüyoruz.

 ConfirmBtnExt_1
ConfirmButton özelliklerine baktığımızda projenin çalışması için vermemiz gereken 'TargetControlID' görüyoruz. Burası onay penresinin hangi olayla tetiklendiğini belirttiğimiz kısım. 'Confirm Text', çıkan pencerede onaylanmasını istediğimiz soruyu belirtiyoruz.
Bu düzenlemeleri yaptıktan sonra sürüklediğimiz buton üzerine çift tıklayarak Default.aspx.cs içindeki 'Button1_Click' olayına, onaylanma işleminin tamamlandığında  gerçekleşmesini istediğimiz olayı belirtiyoruz.

protected void Button1_Click(object sender, EventArgs e)
{
    Label1.Text = "Emin Olmak güzeldir.";
}

Burada sadece sürüklediğim label içinde istediğimiz metni görüntülüyoruz. Kullanım amacına göre bu kısmı özelleştirmemiz mümkün. Projeyi çalıştırdığımızda ekran görüntülerimiz. Bu ekran butona bastığımızda :
ConfirmBtnExt_2 

ConfirmBtnExt_3

Umarım sizin için yararlı olmuştur.  Yeni bir kontrolde görüşmek üzere…

27 Aralık 2009 Pazar

ASP.NET AJAX Tabs Kontrol

Bu yazımızda Asp.net Ajax'ta kullanımımıza sunulan işlevsel ve görsel zenginliklerden bir tanesi olan Tab Kontrol üzerinde duracağız. Bu kontrol tek bir sayfayı organize bir şekilde kullanmamıza olanak sağlar.

VisualStudio içinde projemizi AJAXEnabledWebApplication olarak başlatıyoruz. ScriptManager sekmesi altına AjaxControlToolkit içinden bir tane TabContainer sürüklüyoruz bu kontrol TabPanellerimizi kendi bünyesinde toplayacaktır. Daha sonra sırasıyla istediğimiz kadar TabPanel kontrolünü TabContainer sekmesi içine sürüklüyoruz.TabPanel etiketi altına '< ' parantezimizi açtığımız zaman karşımıza iki seçenek çıkar ' <ContentTemplate> ', ' <HeaderTemplate> '. Content Template sekme içeriğini oluşturmamıza olanak sağlayacak etikettir. Header Template ise adından da anlaşılacağı gibi sekme başlığını yapılandırmamızı sağlar.
Default.aspx sayfamız içierisinde aşağıdaki gibi bir düzenleme yaparak
 

<cc1:TabContainer ID="TabContainer1" runat="server">
    <cc1:TabPanel ID="TabPanel1" runat="server" >
        <ContentTemplate>
        1. Sayfa - Sekme 1
        </ContentTemplate>
    </cc1:TabPanel>
    <cc1:TabPanel ID="TabPanel2" runat="server" >
        <ContentTemplate>
        2. Sayfa - Sekme 2<br />
        2. Sayfa - Sekme 2<br />
        </ContentTemplate>
    <2/cc1:TabPanel>
    <cc1:TabPanel ID="TabPanel3" runat="server">
        <ContentTemplate>
        3. Sayfa - Sekme 3<br />
        3. Sayfa - Sekme 3<br />
        3. Sayfa - Sekme 3<br />
        </ContentTemplate>
    </cc1:TabPanel>
</cc1:TabContainer>

Projemizi çalıştırdığımızda aşağıdaki görüntüyü elde ederiz.

TabCont_1

İhtiyaçlarımız doğrultusunda özelleştirebileceğimiz bir kaç noktaya bakmak gerekirse. TabPanel etiketi içerisindeki  "HeaderText" içinde sayfa başlığını belirtebiliriz.
<cc1:TabPanel ID="TabPanel1" runat="server" HeaderText="1. Sekme">
</cc1:TabPanel>

Sekme başlığını aynı zamanda ' <HeaderTemplate> ' içerisinde vererek dinamik olarak 'HeaderText' i override (ezmiş) oluruz.
<cc1:TabPanel ID="TabPanel1" runat="server" HeaderText="1. Sekme">
    <HeaderTemplate>
        Özel Başlık
    </HeaderTemplate>
</cc1:TabPanel>

Kodlarımıza aşağıdaki küçük eklemeyi yaptıktan sonra

<cc1:TabContainer ID="TabContainer1" runat="server">
    <cc1:TabPanel ID="TabPanel1" runat="server" HeaderText="1. Sekme">
        <ContentTemplate>
        1. Sayfa - Sekme 1
        </ContentTemplate>
    </cc1:TabPanel>
    <cc1:TabPanel ID="TabPanel2" runat="server" HeaderText="2. Sekme">
        <ContentTemplate>
        2. Sayfa - Sekme 2<br />
        2. Sayfa - Sekme 2<br />
        </ContentTemplate>
    <2/cc1:TabPanel>
    <cc1:TabPanel ID="TabPanel3" runat="server" HeaderText="3. Sekme">
        <ContentTemplate>
        3. Sayfa - Sekme 3<br />
        3. Sayfa - Sekme 3<br />
        3. Sayfa - Sekme 3<br />
        </ContentTemplate>
    </cc1:TabPanel>
</cc1:TabContainer>

Sayfa görünümümüz :

TabCont_2

gibi olacaktır.Buna  ek olarak yukarıda bahsettiğimiz Header Template etiketini eklersek :


dsds <cc1:TabContainer ID="TabContainer1" runat="server">
    <cc1:TabPanel ID="TabPanel1" runat="server" HeaderText="1. Sekme">
        <HeaderTemplate>
            Özel Başlık
        </HeaderTemplate>
        <ContentTemplate>
        1. Sayfa - Sekme 1
        </ContentTemplate>
    </cc1:TabPanel>
    <cc1:TabPanel ID="TabPanel2" runat="server" HeaderText="2. Sekme">
        <ContentTemplate>
        2. Sayfa - Sekme 2<br />
        2. Sayfa - Sekme 2<br />
        </ContentTemplate>
    <2/cc1:TabPanel>
    <cc1:TabPanel ID="TabPanel3" runat="server" HeaderText="3. Sekme">
        <ContentTemplate>
        3. Sayfa - Sekme 3<br />
        3. Sayfa - Sekme 3<br />
        3. Sayfa - Sekme 3<br />
        </ContentTemplate>
    </cc1:TabPanel>
</cc1:TabContainer>

Sayfa görüntümüz :

TabCont_3

şeklinde olacaktır.
Umarım sizin için yararlı olabilmiştir. Yeni bir kontrolde görüşmek umuduyla..

9 Aralık 2009 Çarşamba

Bu yazımızdaki örneğimizde ana sayfamız olan aspx sayfasından javascript ve ASP.NET Methodlarından ClientScript.RegisterStartupScript kullanarak  popup penceresi açmayı ve ana sayfamızda yaptığımız güncellemenin açılan popup penceresinde nasıl yenilendiğini beraberce öğreneceğiz.

Daha önceki yazılarımıda Ajax kontrollerinden ModalPopupExtender kullanarak popup menü açmayı ele almıştık. Burda farklı olarak popup penceresini ana pencereye bağlı başka bir child (alt) sayfa üzerinden açmayı öğreneceğiz.

Başlangıç olarak Default.aspx sayfamıza popup penceresinin açılmasını sağlayan butonu sürüklüyoruz. Güncellenecek bilgileri göstermek içinde iki tane label. Kod bloğumuz aşağıdaki gibidir.

<div>
    Adı :
    <asp:Label ID="lblAdi" runat="server" Text=" E. Yeşim">
    </asp:Label><br />
    <br />
    Soyadı :
    <asp:Label ID="lblSoyadi" runat="server" Text="Yağcı">
    </asp:Label><br />
    <br />
    <asp:Button ID="btnPop" runat="server" Text="Bilgileri Güncelleyin" />
</div>

Daha sonra Default.aspx sayfasının baş tarafına aşağıdaki java script kodunu ekleyelim. Burada amacımız alınan değerleri popup sayfası içine geçişi sağlamak.

<script type="text/javascript">
    function openPopUp() {
        var popUrl = 'PopUp.aspx?fn=' + document.getElementById('<%= lblAdi.ClientID %>').innerHTML + '&ln=' + document.getElementById('<%= lblSoyadi.ClientID %>').innerHTML;
        var name = 'popUp';
        var appearence = 'dependent=yes,menubar=no,resizable=no,' +
                            'status=no,toolbar=no,titlebar=no,' +
                            'left=5,top=280,width=230px,height=140px';
        var openWindow = window.open(popUrl, name, appearence);
        openWindow.focus();
    }
</script>

Sonraki adımda Default.aspx.cs içindeki Page_Load methodu içine
protected void Page_Load(object sender, EventArgs e)
{
    string updateValuesScript = @"function updateValues(popupValues)
                {
                document.getElementById('lblFirstName').innerHTML=popupValues[0];
                document.getElementById('lblLastName').innerHTML=popupValues[1];
                }";

    this.ClientScript.RegisterStartupScript(Page.GetType(), "UpdateValues", updateValuesScript.ToString(), true);
    btnPop.Attributes.Add("onclick", "openPopUp('PopUp.aspx')");
}
protected void btnPop_Click(object sender, EventArgs e)
{

}

Şimdi projemize yeni bir Web Form ekleyerek devam ediyoruz. Bu form bizim güncelleme yapmak için açacağımız PopUp sayfamız olacak. Sayfa içerisine

<div>
    First Name :
    <asp:TextBox ID="txtPopAdi" runat="server" Width="113px">
    </asp:TextBox><br />
    <br />
    Last Name:<asp:TextBox ID="txtPopSoyAdi" runat="server" Width="109px">
    </asp:TextBox><br />
    <br />
    <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
</div>


protected void Page_Load(object sender, EventArgs e)
{
    string updateParentScript = @"function updateParentWindow()
                {
                var adi=document.getElementById('txtPopAdi').value;
                var soyadi=document.getElementById('txtPopSoyadi').value;
                var arrayValues= new Array(adi,soyadi);
                window.opener.updateValues(arrayValues);
                window.close();
                }";
    this.ClientScript.RegisterStartupScript(this.GetType(), "UpdateParentWindow", updateParentScript, true);
    if (!IsPostBack)
    {
        txtPopFName.Text = Request["fn"];
        txtPopLName.Text = Request["ln"];
    }
    Button1.Attributes.Add("onclick", "updateParentWindow()");
}
protected void Button1_Click(object sender, EventArgs e)
{

}



19 Kasım 2009 Perşembe

csv uzantılı bir dosyayı Excel Dosyası olarak açtığımızda, veriler karşımıza tek satır halinde yazılmış ve virgülle birbirinden ayrılmış, düz yazı olarak görüntülenir. Böyle olduğunda da verileri tablo şeklinde kullanmak imkansız olur.

Excel1 

O yüzden dosyayı açarken şu yolu izlersek bu görünüşle karşı karşıya kalmayız.  Boş Excel sayfası açalım.

Excel2

Data > FromText Seçtikten sonra Dönüştürmek istediğimiz csv uzantılı dosyayı gösterelim ve import seçelim.
Karşımıza üç adımlık bir dönüştürme sihirbazı çıkacak 1. Adımda düzenlemeyi kaçıncı satırdan başlayarak yapmamız istendiği soruluyor. 2. Adımda verileri neye göre sınırlayabileceğimiz soruluyor. Comma (virgül) seçtiğimiz zaman

Excel4

Aşağıdaki ekrana ulaşabiliriz.

Excel5

Umarım sizin için yaralı bir ipucu olmuştur..