Как написать Javascript в коде файла?

Ниже приведен снимок моего кода, включающего JavaScript, взятый из шаблона элемента gridview. Здесь также размещен элемент управления изображением.

  <ItemTemplate>
    <a href="javascript:ShowChildGrid('div<%# Eval("ID#") %>');">
                        <img id="imgdiv<%# Eval("ID#") %>" alt="Click" border="0" src="plus.gif" />
    </a> </ItemTemplate>

Функция JS принимает аргумент в качестве идентификатора. Теперь, как я могу написать JS в коде файла?

Это необходимо, потому что мне нужно отобразить изображение на основе некоторого условия в событии с привязкой к базе данных строки в gridview.

П.С .: Мне известны сценарий запуска реестра и клиентский сценарий, но я не уверен, как они будут соответствовать моим условиям.

7 голосов | спросил Romil N 29 J000000Friday11 2011, 15:33:53

2 ответа


0

Если вы хотите установить код JS для каждого отдельного элемента вида сетки в RowDataBound-событии, вы можете добавить элемент управления Hyperlink в ваш ItemTemplate и установить свойство NavigationUrl этого элемента управления для JS

<ItemTemplate>
    <asp:Hyperlink runat="server" id="lnk" ImageUrl="..."/>
    ...
</ItemTemplate>

RowDataBound-EventHandler:

...
if (e.Row.RowType != DataControlRowType.DataRow)
    return;
string js = String.Format("javascript:ShowChildGrid('div{0}');", rowId);
var lnk = e.Row.FindControl("lnk") as Hyperlink;
if(lnk!=null)
{
    lnk.NavigationUrl = js;
    lnk.ImageUrl = ...;
}

Конечно, вы также можете использовать a и img используя runat -Атрибут

ответил Stephan Bauer 29 J000000Friday11 2011, 15:44:00
0

Измените шаблон и используйте ненавязчивый JavaScript.

<ItemTemplate>
    <button class="imgdiv-button" data-img-id='<%# Eval("ID#") %>'>
        <img class="imgdiv" alt="Click" border="0" src="plus.gif" />
    </button> 
</ItemTemplate>

$(".imgdiv-button").click(function() {
    ShowChildGrid($(this).data('img-id'));
});

Обычно вам нужна кнопка вместо ссылки (потому что это кнопка). И вам нужно просто сохранить этот img-id в атрибуте data.

ответил Raynos 1 AM000000110000002631 2011, 11:23:26

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132