передача аргументов в событие
От: Lepsik Индия figvam.ca
Дата: 14.03.11 21:43
Оценка:
поиском как-то не нашлось

скажем в коде :


<tr><td align="left"><div style="font-size: 70%; font-family: Verdana, sans-serif; padding: 0px 10px 0px 0px;">Attached file:&nbsp;(<%#DataBinder.Eval(Container.DataItem, "filename1")%>- <%#DataBinder.Eval(Container.DataItem, "filelen1")%>Kb)
 <asp:ImageButton ID="btnDownload1" runat="server" onclick="btnDownload_Click" 
 DescriptionUrl=<%#DataBinder.Eval(Container.DataItem, "rowid")%> ImageUrl="Images\download.gif"/>
</td></tr>


хочу передать guid файла хранящегося в базе

передать его удалось тока через DescriptionUrl=<мой гуид>

на сервере получаю так:


    protected void btnDownload_Click(object sender, EventArgs e)
    {
        ImageButton btn = sender as ImageButton;

        if (null == btn)
        {
            return;
        }
        String guid = btn.DescriptionUrl;
    }


я понимаю что это через задний проход — читатель из чукчи плохой

какой же путь наиболее халяльно-кошерно-правоверный?
чутье подсказывает что через EventArgs e — но глядя в отладчик и результата гугля я как-то не нашел прямого ответа

не дайте умереть рубщику мяса в неведении
Re: передача аргументов в событие
От: mrjeka Россия  
Дата: 15.03.11 13:40
Оценка:
Здравствуйте, Lepsik, Вы писали:

L>поиском как-то не нашлось



L>я понимаю что это через задний проход — читатель из чукчи плохой


L>какой же путь наиболее халяльно-кошерно-правоверный?

L>чутье подсказывает что через EventArgs e — но глядя в отладчик и результата гугля я как-то не нашел прямого ответа

L>не дайте умереть рубщику мяса в неведении


Переопределите кнопарь, и добавьте свое поле, и будете указывать guid не в DescriptionUri, а именно в это поле. Если хотите получить в дальнейшем этот гуид через EventArgs, то в переопределенном классе при поднятии события будете руками запихивать этот гуид в EventArgs.
Re[2]: передача аргументов в событие
От: Lepsik Индия figvam.ca
Дата: 15.03.11 14:59
Оценка:
M>Переопределите кнопарь, и добавьте свое поле, и будете указывать guid не в DescriptionUri, а именно в это поле. Если хотите получить в дальнейшем этот гуид через EventArgs, то в переопределенном классе при поднятии события будете руками запихивать этот гуид в EventArgs.

блин я так и думал, спасибо.

непонятно зачем усложнять такие очевидные вещи — ведь вполне могли бы иметь абстракный контейнер без необходиомсти городить лишний огород
Re[3]: передача аргументов в событие
От: mrjeka Россия  
Дата: 15.03.11 15:08
Оценка:
Здравствуйте, Lepsik, Вы писали:

M>>Переопределите кнопарь, и добавьте свое поле, и будете указывать guid не в DescriptionUri, а именно в это поле. Если хотите получить в дальнейшем этот гуид через EventArgs, то в переопределенном классе при поднятии события будете руками запихивать этот гуид в EventArgs.


L>блин я так и думал, спасибо.


L>непонятно зачем усложнять такие очевидные вещи — ведь вполне могли бы иметь абстракный контейнер без необходиомсти городить лишний огород


А нет в кнопке поля Tag? его можете юзать для всякой всячины. Просто давно не работал c asp.net контролами. В Win и Silverlight они есть.
Re[4]: передача аргументов в событие
От: Lepsik Индия figvam.ca
Дата: 15.03.11 17:12
Оценка:
M>А нет в кнопке поля Tag? его можете юзать для всякой всячины. Просто давно не работал c asp.net контролами. В Win и Silverlight они есть.

Tag нету — есть TagKey но через него значение со страницы не передается
Re: передача аргументов в событие
От: 1stein Украина  
Дата: 15.03.11 18:32
Оценка: 1 (1)
Здравствуйте, Lepsik, Вы писали:

Можно воспользоваться CommandArgument, или же просто добавить свой атрибут:

<tr><td align="left"><div style="font-size: 70%; font-family: Verdana, sans-serif; padding: 0px 10px 0px 0px;">Attached file:&nbsp;(<%#DataBinder.Eval(Container.DataItem, "filename1")%>- <%#DataBinder.Eval(Container.DataItem, "filelen1")%>Kb)
 <asp:ImageButton ID="btnDownload1" runat="server" onclick="btnDownload_Click" 
 CommandArgument=<%#DataBinder.Eval(Container.DataItem, "rowid")%>
 guid=<%#DataBinder.Eval(Container.DataItem, "rowid")%>
 ImageUrl="Images\download.gif"/>
</td></tr>




    protected void btnDownload_Click(object sender, EventArgs e)
    {
        ImageButton btn = sender as ImageButton;

        if (null == btn)
        {
            return;
        }
        String guid1 = btn.CommandArgument;
        String guid2 = btn.Attributes["guid"];
    }
Will code C# for food
Re[2]: передача аргументов в событие
От: Lepsik Индия figvam.ca
Дата: 16.03.11 18:39
Оценка:
Здравствуйте, 1stein, Вы писали:

1>Здравствуйте, Lepsik, Вы писали:


1>Можно воспользоваться CommandArgument, или же просто добавить свой атрибут:



мегаспасибо товарисч — это то что партия заказывала, отладчком это к сожалению не видно — но нутром чуял что перегрузка базовых класса ради копеечной тривиальной передачи атрибутов — это как из пушки по таракану
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.