Я читал сообщения и ссылки, а также статьи о viewstate и statebag, а также обратную передачу и создание страниц.Застрял в динамических элементах управления, Viewstate и Postback. Упрощенный пример
Я довольно приличный любитель, но этот человек просто не погружается, может ли кто-нибудь показать мне пример того, как это можно сделать?
ОК, вот что я пытаюсь сделать с этим примером
Создайте таблицу, в которой левая колонка имеет LinkButtons
При каждом LinkButton нажатии открывает кучу Imagebuttons в правой колонке
Каждый IMAGEBUTTON затем всплывает сообщение
проблема является ImageButton не вызывает сообщение
здесь передний конец:
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="simple.aspx.vb" Inherits="simple" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>simple</title>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<asp:Table id="MainTable" runat="server">
<asp:TableRow>
<asp:TableCell ID ="cell1" BackColor="LightBlue" />
<asp:TableCell ID ="cell2" BackColor="LightBlue" />
</asp:TableRow>
</asp:Table>
</form>
</body>
</html>
и вот код:
Partial Class simple
Inherits System.Web.UI.Page
Protected Sub Page_Init(sender As Object, e As EventArgs) Handles Me.Init
Dim NewTableButton As LinkButton = New LinkButton
NewTableButton.Text = "Text Created from 1st SQL Query"
AddHandler NewTableButton.Click, AddressOf LoadContacts
cell1.Controls.Add(NewTableButton)
End Sub
Protected Sub LoadContacts(sender As Object, e As System.EventArgs)
Dim TextPassedfromLinkButton As String = sender.text.ToString
Dim imgGear As New ImageButton
imgGear.ImageUrl = "../graphics/gear.jpg"
imgGear.AlternateText = "Text Created from 2nd SQL Query using the " _
& TextPassedfromLinkButton & " as a query parameter"
AddHandler imgGear.Click, AddressOf message
cell2.Controls.Add(imgGear)
End Sub
Protected Sub message(ByVal sender As Object, ByVal e As System.EventArgs)
Dim strText As String = sender.text.ToString
Dim alertString As String = "alert('" & strText & "');"
ScriptManager.RegisterStartupScript(Me, [GetType](), "showalert", alertString, True)
End Sub
End Class
Вот исходный вид после нажатия на кнопку, которая должна всплывающее сообщение
<table id="MainTable">
<tr>
<td id="cell1" style="background-color:LightBlue;"><a href="javascript:__doPostBack('ctl03','')">Text Created from 1st SQL Query</a></td>
<td id="cell2" style="background-color:LightBlue;"><input type="image" name="ctl04" src="../graphics/gear.jpg" alt="Text Created from 2nd SQL Query using the Text Created from 1st SQL Query as a query parameter" /></td>
</tr>
</table>
Так в то же время я получил это на работу (обновлено 10:49 est)
Protected Sub Page_Init(sender As Object, e As EventArgs) Handles Me.Init
Dim NewTableButton As LinkButton = New LinkButton
NewTableButton.Text = "Text Created from 1st SQL Query"
'AddHandler NewTableButton.Click, AddressOf LoadContacts
AddHandler NewTableButton.Click, Function() LoadContacts(NewTableButton.Text)
cell1.Controls.Add(NewTableButton)
If IsPostBack Then
LoadContacts(NewTableButton.Text)
End If
End Sub
Private Function LoadContacts(strText As String) As Integer
Dim TextPassedfromLinkButton As String = strText
Dim imgGear As New ImageButton
imgGear.ID = "uniquename"
EnableViewState = False
imgGear.ImageUrl = "../graphics/gear.jpg"
imgGear.AlternateText = "Text Created from 2nd SQL Query using the " & TextPassedfromLinkButton & " as a query parameter"
AddHandler imgGear.Click, AddressOf message
cell2.Controls.Add(imgGear)
Return 0
End Function
Единственная проблема в том, я получаю 2 Одинаковые imgGears
duplicate buttons http://reinsmith.net/graphics/simple1.png message displayed http://reinsmith.net/graphics/simple2.png
ОК, теперь вот забавная часть. Это упрощенный пример. То, что я действительно пытаюсь сделать, это сначала создать набор кнопок ссылок из SQL-запроса с именами клиентов. Затем, когда щелкнуть LinkButton, выберите индивидуальное имя клиента и отобразите записи с именем клиента. например, индивидуальные контакты у каждого клиента. Затем для каждого контакта создайте ссылку или кнопку, чтобы ИЗМЕНИТЬ этот индивидуальный контакт в модальном всплывающем окне. Таким образом, переопределение может работать, если я могу обнаружить отдельный элемент управления, который отправил запрос и вытащил из него какую-то переменную, что имеет смысл? – mreinsmith
Чувак, теперь ты изменил вопрос. Я помог вам разобраться в оригинальной проблеме и дал вам обходной путь. Было бы неплохо, если бы вы проявили свою признательность, а не меняли вопрос. –
Приношу свои извинения, я ценю это и работаю (я думаю). У меня было много пожаров, чтобы потушить эти последние несколько дней и смогли вернуться к нему. Надеюсь, я смогу сегодня. Еще раз спасибо, а не преступление, предназначенное специально для тех, кто смог ответить! – mreinsmith