Ana içeriğe geç

Detay Tablo Link Açtırma

Burada amaç detay tablo üzerindeki sütunda linklerin barındırılması ve linklere tıklanınca ilgili sayfanın açılmasını sağlamaktır.

Detay tabloya label nesnesi eklenememektedir. Radiobutton nesnesi eklenebilir ancak bu nesnenin Text değeri veri tabanında tutulmamaktadır dolayısıyla veri barındırılmaz.

Amacın gerçekleştirilmesi için aşağıdaki şekilde çözüm uygulanabilir. Çözüme göre CheckBox'a tıklandığında link açılacaktır.

Bir TextBox ve bir CheckBox forma eklenerek Detay Tabloya eklenir. Varsayılan'da CheckBox'ın Selected seçeneği pasif olmalıdır. TextBox karakter uzunluğunun linkin sığabileceği şekilde uzun olmasına dikkat edilir (Örn: Single Line olarak Lenght 2000 verilebilir.) TextBox içerisinde link barındırılır. İstenirse TextBox gizlenebilir, oradaki veri kullanılarak CheckBox vasıtasıyla linkin sayfası açılması sağlanacaktır. Detay tabloda CheckBox işaretlendiğinde tüm detay tablo satırları dolaşılarak hangi CheckBox işaretlendiyse, o satırdaki link 'a href' eklenerek açılabilir. Sayfa açılınca CheckBox tik'i kaldırılır.

Linki Detay Tablodaki TextBox'a aktarma

Aşağıdaki yapıya benzer şekilde Detay Tablodaki her bir satırda yer alan link barındıracak TextBox sütunu doldurulabilir.

((TextBox)DetayTablo1.GetRowObject(DetayTablo1.CurrentRowCount-1,"txtLink")).Text =  externalSharelink;

Detay Tablodaki CheckBox'a tıklanınca, TextBox'daki linki açma

CheckBox tıklandığında tetiklenen OnCheckedChanged metodu kullanılır.

public void chkLink_OnCheckedChanged(Object sender, EventArgs e)
{
for (int i = 0; i < DetayTablo1.CurrentRowCount; i++)
{
if (((CheckBox)DetayTablo1.GetRowObject(i, "chkLink")).Checked == true) // chkLink detaytablodaki CheckBox
Page.Response.Write("<script>window.open('" + ((TextBox)DetayTablo1.GetRowObject(i, "txtLink")).Text + "','_blank');</script>"); //txtLink detaytablodaki TextBox
((CheckBox)DetayTablo1.GetRowObject(i, "chkLink")).Checked = false; // Detaytablodaki CheckBox'ın işareti (tik'i) tekrardan kaldırılır.
}
}