talhaturan.com

yazılım geliştirme ve dahası...

Bazı durumlarda, siteleri Internet Explorer 8 ile görüntülerken CSS ya da javascript'le ilgili sorunlar çıkabiliyor. Site yerleşiminde bozukluklar, bazı script'lere karşı tarayıcının verdiği tepkiler, vs.

Bunu, en azından işlevselliği bozmamak adına, çözmenin şöyle bir yolu var: IE8'in, IE7 gibi çalışmasını sağlamak.

Bunun için, sayfaya bir meta etiketi ekliyoruz:

<meta http-equiv="X-UA-Compatible" content="IE=7" />Çoğu sorun bu şekilde çözülür sanırım.


Buradaki örnek Textarea nesnesi içindir.

http://noteslog.com/personal/projects/wresize/1.1/jquery.wresize.js adresindeki wresize plug-in'ini, jQuery son versiyonu ile birlikte projeye ekliyoruz.

<script type="text/javascript" src="http://jquery.com/src/jquery-latest.pack.js"></script>
<script type="text/javascript" src="js/jquery.wresize.js"></script>
Hemen bu satırlardan sonra bir de resize fonksiyonu ekliyoruz:

<script type="text/javascript">

jQuery( function( $ ) {
function content_resize() {

var w = $( window );
var H = w.height();
var W = w.width();

$( '#content' ).css( {width: W-20, height: H-20} );

}

$( window ).wresize( content_resize );

content_resize();

} );

</script>
$( '#content' ), nesnenin ID'si burada.Sayfa içindeki DIV de şu:

<div id="content" style="border: 1px dashed silver; position:absolute; overflow:auto;">test</div> Kaynak: http://noteslog.com/post/how-to-fix-the-resize-event-in-ie/

http://www.umutluoglu.com/post/2009/05/08/Bir-Sayfada-Birden-Fazla-DefaultButton-Kullanimi.aspx

ASP.NET sayfalarında kullanıcının, doldurduğu form bilgilerini kolay şekilde buton nesnesi ile sunucuya gönderebilmesi için <form> elementindeki defaultbutton özelliğine buton kontrolünün ID değerini atayabiliriz. Böylece kullanıcı butona tıklamadan klavyeden enter tuşuna bastığında formdaki bilgiler sunucuya gönderilir. Peki sayfamızda farklı formlar varsa(örneğin sayfanın sol kısmında login formu, sağ kısmında kullanıcı kayıt formu) kullanıcı o an hangi form üzerinde enter tuşuna basarsa içerisinde bulunduğu formun butonuna tıklanmasını nasıl sağlarız? Yine DefaultButton özelliğini kullanarak yapabiliriz ama <form> elementinin defaultbutton özelliği değil!

Bu tarz bir işlem için öncelikli olarak her iki formu da birer Panel kontrolü içerisine almamız gerekir. Panel kontrolünün de aslında DefaultButton adında bir özelliği vardır. Dolayısıyla her iki panelin kendi içlerinde yer alan ve submit işlemini yapacak butonun ID değerini Panel’in DefaultButton özelliğine atarsak formlar istediğimiz şekilde davranabilecektir. Eğer panellerin dışında başka bir formunuz daha varsa ve bu panellerin dışında enter tuşuna basıldığında bu formun içerisindeki bir butonun tetiklenmesini istiyorsanız yine <form> elementinin defaultbutton özelliğini kullanabilirsiniz. Aşağıdaki kod parçalarını bir sayfa üzerinde test ederseniz durum gayet açık şekilde anlaşılacaktır :)

Default.aspx

<form id="form1" runat="server" defaultbutton="button1">

<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>

<asp:Button ID="button1" runat="server" Text="Button-1" OnClick="btn_Click" />

<br />

<asp:Panel ID="panel1" runat="server" BackColor="LightGreen" DefaultButton="button2" Width="300">

<asp:TextBox ID="text1" runat="server"></asp:TextBox>

<asp:Button ID="button2" runat="server" Text="Button-2" OnClick="btn_Click" />

</asp:Panel>

<asp:Panel ID="panel2" runat="server" BackColor="LightBlue" DefaultButton="button3" Width="300">

<asp:TextBox ID="text2" runat="server"></asp:TextBox>

<asp:Button ID="button3" runat="server" Text="Button-3" OnClick="btn_Click" />

</asp:Panel>

</form>
Default.aspx.cs

protected void btn_Click(object sender, EventArgs e)

{

Response.Write("Tıklanan buton: " + ((Button)sender).Text);

}

Master Page içinde lblDeneme isimli bir Label olsun. Content page içinden bu nesneye erişmek için geçici bir nesne oluşturuyoruz ve FindControl metodu ile asıl nesneye ulaşıyoruz:

Label tmpLabel = (Label)this.Master.FindControl("lblDeneme"); Sonra tmpLabel üzerinde istediğimiz değişiklikleri yapıyoruz:

tmpLabel.Text = "...";