Ajax ModalPopupExtender driller
Hej EJeg har et lille test projekt.
Dette indeholder en aspx side som benytter en repeater til at vise indholdet af en datatabel.
Når man klikker på et link i repeateren så sætter dette link en property i en web user control. Virker perfekt.
Men jeg vil gerne benytte ModalPopupExtender til at vise min Web User Control. Problemet er så at værdien ikke bliver overført til min Web User Control, når jeg benytter ModalPopupExtender.
Der kommer ikke nogle fejl, der sker bare ikke noget.
Kan i hjælpe med det?
Her er min test kode.
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePartialRendering="true"/>
<asp:UpdatePanel runat="server" ID="sdfsdf">
<ContentTemplate>
<div>
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<asp:LinkButton runat="server" Text='<%#Eval("MyColumn") %>' CommandArgument='<%#Eval("ID") %>' ID="hlbLink"></asp:LinkButton>
<p></p>
</ItemTemplate>
</asp:Repeater>
<asp:Panel ID="Panel1" runat="server" Width="225px" BackColor="white" >
<uc1:test ID="Test1" runat="server" SetValue='<%#Eval("ID") %>' />
</asp:Panel>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</form>
</body>
</html>
Imports System.Data
Partial Class _Default
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim dtOne As New DataTable("FirstTable")
dtOne.Columns.Add("ID")
dtOne.Columns.Add("MyColumn")
For i As Integer = 1 To 10
Dim row As DataRow = dtOne.NewRow()
row("ID") = i.ToString
row("MyColumn") = "Data" + i.ToString
dtOne.Rows.Add(row)
Next
Dim ds As New DataSet()
ds.Tables.Add(dtOne)
Repeater1.DataSource = ds
Repeater1.DataBind()
End Sub
Protected Sub Repeater1_ItemCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.RepeaterCommandEventArgs) Handles Repeater1.ItemCommand
Test1.SetValue = e.CommandArgument.ToString()
End Sub
End Class
WebUserControl’en
<%@ Control Language="VB" AutoEventWireup="false" CodeFile="test.ascx.vb" Inherits="test" %>
<asp:Label ID="lblTextTest" runat="server"></asp:Label><br />
<br />
<asp:Button ID="Button1" runat="server" Text="luk" /><br />
Partial Class test
Inherits System.Web.UI.UserControl
Dim _myValue As String
Public Property SetValue()
Get
Return _myValue
End Get
Set(ByVal value)
_myValue = value
lblTextTest.Text = _myValue
End Set
End Property
End Class
Så koden virker ikke hvis jeg i stedet gør således.
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<asp:LinkButton runat="server" Text='<%#Eval("MyColumn") %>' CommandArgument='<%#Eval("ID") %>' ID="hlbLink"></asp:LinkButton>
<p></p>
<cc1:ModalPopupExtender ID="ModalPopupExtender1" runat="server" TargetControlID="hlbLink" PopupControlID="Panel1">
</cc1:ModalPopupExtender>
</ItemTemplate>
</asp:Repeater>
Håber det giver mening..