Пытается всплыть фреймворк IFrame Shadowbox с JQuery из asp: gridview datarow. Я не могу получить правильные котировки в строке:Asp.Net и Shadowbox
<asp:ImageButton ID="btnEdit" runat="server"
OnClientClick='<%# "javascript:popAccount(\'"+
Eval("id", "Popup.aspx?id={0}")+"\');" %>' />
Сообщение об ошибке Parser: тег сервера плохо сформирован.
Без уцелевших одинарные кавычки (может не работать, но разбирает правильно):
<asp:ImageButton ID="btnEdit" runat="server"
OnClientClick='<%# "javascript:popAccount("+
Eval("id", "Popup.aspx?id={0}")+");" %>' />
Клиентский HTML, как и ожидалось:
onclick="javascript:popAccount(Popup.aspx?id=3ce3b19c-1899-4e1c-b3ce-55e5c02f1);"
Как получить котировки INTO в JavaScript?
Редактировать: Добавлено решение. Это не очень общее, так как типы данных привязки должны быть известны, чтобы получить доступ к свойству id. Ключ (как определено в параметре DataKeyNames GrodView), по-видимому, не отображается в аргументе события. Но это работает.
protected void editGrid_RowDataBound(object sender, GridViewRowEventArgs e)
{
// do not look at header or footer
if (e.Row.RowType == DataControlRowType.DataRow)
{
ImageButton btn = e.Row.FindControl("btnPopup") as ImageButton;
if (btn != null)
{
btn.OnClientClick =
"javascript:popAccount('EditAccountPopup.aspx?"+
Constants.acctidParam+"="+
((tb_account)(e.Row.DataItem)).id.ToString()+"');";
}
}
Имеет ли значение этот вопрос? Я должен использовать тег привязки данных в любом случае ... – cdonner
Спасибо за принятый ответ. Я обновил сообщение, чтобы включить предложение для решения, которое использует codebehind, и более простая версия с использованием jQuery. –