literalde asp:button tanımlamak istiyorum. Aşağıdaki şekilde tanımladım ancak olmadı.Nasıl yapabilirim

 tabloSatir += "<tr style=\\"background-color: papayawhip;\\" class=\\"listsec\\"><td><asp:Button ID=\\"Button2\\" runat=\\"server\\" Text=\\"Button\\" onclick=\\"Button1_Click\\" /></td>";

soruldu: 30 Mar '15, 09:52

taze_m%C3%BChendis's gravatar image

taze_mühendis
08810
cevap kabul oranı: 0%


Böyle bir kullanım olmaz. Asp:Button controlü html butona render olarak sayfada görüntülenir. Örnek olarak bir webpage açıp bir tane button ekle ve sayfayı çalıştırdıktan sonra sayfa kaynak kodunu incele 'asp:' tagının olmadığını göreceksin.

Gelelim nasıl bir çözüm üreteceğimize. Kısaca özetlemek gerekirse sayfaya bir tane asp:button ekleyeceğim ve onu görünmez yapacağım.Daha sonra onun click event'ini java script ile tetikleyip yapmak istediğime ulaşacağım. Bunları yaparken codebehind'a parametre göndermeye de çalışacağım. yani java scriptten code behind'a sayfadaki parametreyi göndereceğim.

Aspx. sayfasını aşağıdaki gibi hazırlıyorum:

<%@ Page Language="C#" AutoEventWireup="true" EnableEventValidation="false" CodeBehind="WebForm2.aspx.cs" Inherits="TestWeb.WebForm2" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Postback Dememe</title>

    <style type="text/css">
        .gizli {
            visibility: hidden; 
        }
    </style>

    <script type="text/javascript">

        function onButtonClick(val, text) {
            __doPostBack('postBackButton', JSON.stringify({ id: val, name: text }));
        }

    </script>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>

            <%-- Bu buttonu gizliyorum onun click eventini tetikleyip post back yapacağım --%>
            <asp:Button ID="postBackButton" runat="server" OnClick="postBackButton_Click" CssClass="gizli"></asp:Button>

            <asp:Literal runat="server" ID="ltrTable"></asp:Literal>
        </div>
    </form>
</body>
</html>

Code behind 'ı da aşağıdaki gibi hazırlıyorum:

using System;
using Newtonsoft.Json;

namespace TestWeb
{
    public partial class WebForm2 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            var html = "<table>";

            for (int i = 0; i < 10; i++)
            {
                html += string.Format("<tr style='background-color: papayawhip;' class='listsec'><td><input type='button' onclick=\\"onButtonClick({0}, 'Müslüm_{0}');\\" value='Btn{0}' /></td>", i);
            }

            html += "</table>";
            ltrTable.Text = html;
        }

        protected void postBackButton_Click(object sender, EventArgs e)
        {
            //Javascript ile gönderdiğimiz parametreleri okuyoruz
            MyModel deserializedArgs = JsonConvert.DeserializeObject<MyModel>(Request["__EVENTARGUMENT"]);
            var id = deserializedArgs.id;
            var name = deserializedArgs.name;

            this.Response.Write(string.Format("id={0}, name={1} dir",id,name));
        }
    }

    /// <summary>
    /// java script ile gelecek değerleri bu modele bind edeceğim
    /// </summary>
    public class MyModel
    {
        public int id { get; set; }

        public string name { get; set; }
    }
}

Tam bir örnek üzerinden anlaşılmasının kolay olacağını düşündüğüm için tüm kodları paylaştım.

İyi çalışmalar

permanent link

cevaplandı: 30 Mar '15, 11:33

M%C3%BCsl%C3%BCm%20%C3%96ZT%C3%9CRK's gravatar image

Müslüm ÖZTÜRK
10.6k103690
cevap kabul oranı: 28%

değiştirildi: 30 Mar '15, 11:43

Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×158
×8
×1

Soruldu: 30 Mar '15, 09:52

Görüntüleme: 626 kez

Son güncelleme: 30 Mar '15, 11:43

powered by BitNami OSQA