Как я могу передать свои значения imagebutton функции c # - PullRequest
0 голосов
/ 23 марта 2012

Я храню переменную с именем id, и она сохраняет значение, которое исходит из db (id = row[3].ToString();)

Затем я присваиваю id класса yildiz 'id', затем пытаюсь передать функцию c #, но не могу этого сделать.

Когда в событии щелчка значение id равно "id" (код, который я пытаюсь использовать (string id = objImage.UniqueID; objImage.ID)), но на самом деле оно должно быть таким, как "26", значение которого исходит из БД, но это не так.

На самом деле моя проблема с обработкой данных на стороне c #. Я пробовал также командные аргументы, но я не могу сделать это, есть ли способ сделать это, как я могу решить проблему? спасибо ..

        id = row[3].ToString();
   %>

<div class="sag-re">-
            <div class="sag-re-baslik" runat="server"><asp:HyperLink ID=baslik runat="server">HyperLink</asp:HyperLink></div>
                <!--<div class="sag-re-resim"><img src="images/rss-image.jpg" width="120" height="120"  /></div>-->
            <div class="sag-re-icerik" id = icerik runat="server">Lorem ipsum dolor sit amet, , arcu nec viverra mollis, turpis neque feugiat massa, non dapibus neque nunc ac orci. </div>
            <div class="oy-verme">
                 <!-- <body onload="getDivs()"> -->

           <!--  <input type="image"
            src="images/yildiz.png" 
            ID="ImgButton"                                
                runat="server" OnServerClick="ImgButton_ServerClick" />-->
                <% for (j = i * 5 + 1; j < (i *5)+6; j++)
        {

            //Imageid = "Img" + j;

                       %>
                        <div class="yildiz"><asp:ImageButton ID= id  runat="server" Height="19px" 
                        ImageUrl="~/images/yildiz.png"  OnClick="ImageButton2_Click" Width="20px" 
                        style="position: relative; top: 13px; left:6px; float:left; "   /></div>


       <% } %>

Это сторона c #

protected void ImageButton2_Click(object sender, ImageClickEventArgs e)
    {
        ImageButton objImage = (ImageButton)sender;
        string id = objImage.UniqueID;

     /*   if (e.CommandName == "Comment")
        {
            string[] commandArgs = e.CommandArgument.ToString().Split(new char[] { ',' });
            string scrapid = commandArgs[0];
            string uid = commandArgs[1];
        } */


        //  string s= Imageid.UniqueID.ToString();
        //this.baslik2.Text = s;

    }

1 Ответ

1 голос
/ 23 марта 2012

вы устанавливаете ID = id, поэтому я думаю, что вы читаете его обратно как строку «id» ... Я думаю, что вы действительно хотите сделать, это установить его так:

J = <% = ID%>

EDIT:

да, это не работает так, как я ожидал в этом случае ...

Я переработал это следующим образом:

<asp:Panel id="test" class="yildiz" runat="server"></asp:Panel>

и page_load:

protected void Page_Load(object sender, EventArgs e)
{
    var i = 2;

    var id = 2;

    for (var j = i * 5 + 1; j < (i *5)+6; j++)
        {

                var imagebutton = new ImageButton();
                imagebutton.ID = id.ToString( );
                imagebutton.ImageUrl = "https://www.google.com/logos/2012/juan_gris-2012-hp.jpg";
                imagebutton.Style.Add("position","relative");
                imagebutton.Style.Add("top","13px");
                imagebutton.Style.Add("left","6px");
                imagebutton.Style.Add("float","left");
                test.Controls.Add(imagebutton);

        }
}

однако, имеет эту ошибку:

Найдено несколько элементов управления с одинаковым идентификатором '2'. FindControl требует, чтобы элементы управления имели уникальные идентификаторы.

ОДНАКО, ЭТО РАБОТАЕТ:

protected void Page_Load(object sender, EventArgs e)
{
    var i = 2;

    var id = 2;

    for (var j = i * 5 + 1; j < (i *5)+6; j++)
        {

                var imagebutton = new ImageButton();
                imagebutton.Attributes.Add("custom-id", id.ToString( ));
                imagebutton.ImageUrl = "https://www.google.com/logos/2012/juan_gris-2012-hp.jpg";
                imagebutton.Style.Add("position","relative");
                imagebutton.Style.Add("top","13px");
                imagebutton.Style.Add("left","6px");
                imagebutton.Style.Add("float","left");
                imagebutton.Click += new ImageClickEventHandler(imagebutton_Click);
                test.Controls.Add(imagebutton);

        }
}

void imagebutton_Click(object sender, ImageClickEventArgs e)
{
    ImageButton objImage = (ImageButton)sender;
    objImage.Attributes["custom-id"];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...