Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Нажатие клавиши и javascript / 5 сообщений из 5, страница 1 из 1
21.09.2005, 10:13
    #33280448
man_78
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нажатие клавиши и javascript
Народ подскажите как правельно сделать! У меня есть функция
Код: plaintext
1.
2.
3.
4.
5.
<script language="javascript">
function CertificateListFromAccess(account)
{
  ....
}
</script>
а в дата гриде кнопка imageButton при нажатии на которую должна вызватся эта функция .Делал так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
   .....
  string sAccount="...";
   System.Web.UI.WebControls.ImageButton iButtonShow=(System.Web.UI.WebControls.ImageButton)e.Item.FindControl("ButtonShow");

  iButtonShow.Attributes.Add("onclick","CertificateListFromAccess("+sAccount+")");
  ...
}	

но ничего не происходит, ведать параметру account не передается ни какое значение. Подскажите как правельно передать значение переменной sAccount в эту функцию
...
Рейтинг: 0 / 0
21.09.2005, 11:22
    #33280672
Вопросник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нажатие клавиши и javascript
В принципе мало что получиться таким образом.
У меня была схожая задача, решил таким образом, строку формировал в С# коде полностью, и DitaBindom связывал ее.

У меня была задача, открыть окно Java Scriptom c параметрами из C#
В коде C# я формировал строку c готовыми параметрами:

m_uh="javascript:void(window.open(\"okno.aspx?guid="+m_guid.ToString()+"\",\"popupfind\", \"width=435,height=400, location=no, menubar=no, status=no,toolbar=no, scrollbars=yes, resizable=yes\"))";

а в HTML ее связывал
<asp:HyperLink ID="hpFinding" runat="server" NavigateUrl='<%#m_uh%>'>

тебе тока надо будет на Onclick кнопарика твоего навешать.
...
Рейтинг: 0 / 0
21.09.2005, 12:58
    #33280999
man_78
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нажатие клавиши и javascript
Я решил эту проблему таким образом
Код: plaintext
iButtonShow.Attributes.Add("onclick",string.Format("CertificateListFromAccess('{0}')",sAccount));
и все нормально передается
...
Рейтинг: 0 / 0
21.09.2005, 13:09
    #33281038
profil
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нажатие клавиши и javascript
sAccount это наименование поля в источнике?
тогда, в обработчике ItemDataBound, до его значения можно достучаться через e.Item.DataItem.
единственное, в зависимости от источника необходимо будет сделать приведение типов, т.е.
если источник типа IDataReader(все DataReader -ы) - тогда : (e.Item.DataItem as System.Data.Common.DbDataRecord)["sAccount"]
если DataTable или DataView - тогда (e.Item.DataItem as DataRowView).Row["sAccount"]
ну и если массив объектов, типизированная коллекция тогда, соответственно, нужно приводить к типу объэекта коллекции..

одним словом:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
   .....
  string sAccount= (string)(e.Item.DataItem as DataRowView).Row["sAccount"];
   System.Web.UI.WebControls.ImageButton iButtonShow=(System.Web.UI.WebControls.ImageButton)e.Item.FindControl("ButtonShow");

  iButtonShow.Attributes.Add("onclick","CertificateListFromAccess('"+sAccount+"')");
  ...
}
...
Рейтинг: 0 / 0
21.09.2005, 13:10
    #33281043
profil
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нажатие клавиши и javascript
2man_78, да можно и так... я описал унивирсальный механизм
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Нажатие клавиши и javascript / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]