I have a gridview inside an update panel. Associated with the page are two user controls. The first is a modal popup that allows the user to enter a new item that should be displayed in the list located within the grid. The second is a modal popup that will display the details of an item listed in the grid - and should be displayed when the user clicks the linkbutton on that item's row. I intend to display the model popup programmatically by trapping the linkbutton and determieng the proper arguments.
The gridview is being populated (databind) from the gridview prerender event. I am NOT testing for postback there as the grid will not be re-displayed properly when the first popup is closed if I do that.
So, is there anyway to make this work correctly?
Here is the appropriate section from the .asp page:
<asp:UpdatePanel runat="server" ID="updpnlDisplayList" UpdateMode="Conditional" ><ContentTemplate><asp:GridView ID="gvPersonEvents" runat="server" AutoGenerateColumns="False"
ShowHeader="False" Width="495px" CssClass="grviewstyle"
CellPadding="1" AllowPaging="True"
EmptyDataText=" No (matching) events have been found." OnRowCommand="gvPersonEvents_RowCommand"><AlternatingRowStyle BackColor="LightGray" /><Columns><asp:TemplateField><ItemStyle Width="70px" CssClass="gridViewColumn" /><ItemTemplate><asp:TextBox runat="server" ID="txtEventDate"
ToolTip = '<%# String.Format("{0:MM/dd/yyyy hh:mm:ss tt}",DataBinder.Eval(Container.DataItem, "EventDate")) %>'
Text='<%# String.Format("{0:MM/dd/yyyy}",DataBinder.Eval(Container.DataItem, "EventDate")) %>'
CssClass="gridTextField" Width="70px" /></ItemTemplate></asp:TemplateField><asp:TemplateField HeaderText="Type" ><ItemStyle CssClass="gridViewColumn" /><ItemTemplate><asp:LinkButton CssClass="linkNoOverFlowForGrid" runat="server" ID="lbEventTypeDescription"
CommanName="View" CausesValidation="False"
CommandArgument='<%# DataBinder.Eval(Container.DataItem, "ID") %>'
Text='<%# DataBinder.Eval(Container.DataItem, "Description") %>'
ToolTip = '<%# DataBinder.Eval(Container.DataItem, "Notes") %>' /><asp:Button ID="btnTestClick" runat="server" CommandName="View" Text="test" OnClick="lnkbtnEventDescription_Click" CausesValidation="False" /></ItemTemplate></asp:TemplateField><asp:TemplateField ><ItemStyle Width="20px" CssClass="gridViewColumn" HorizontalAlign="Center" /><ItemTemplate><asp:Image runat="server" ID="imgInfo1" ToolTip='<%# DataBinder.Eval(Container.DataItem, "Information") %>'
ImageAlign="Right" ImageUrl="../images/infologo.gif" /></ItemTemplate></asp:TemplateField></Columns></asp:GridView></ContentTemplate></asp:UpdatePanel>And then the code from the code behind:
Private Sub gvPersonEvents_PreRender(ByVal sender As Object, ByVal e As System.EventArgs) Handles gvPersonEvents.PreRender
Dim debug As String = "debug"
'This code loads the first page of events, during partial post-backs,
'when the Page_Load method is not called on the parent page or on the control.
If (gvPersonEvents.DataSource Is Nothing) Then
Dim pageIndex As Integer
pageIndex = 0
Me.LoadEntityEvents(pageIndex)
End If
updpnlDisplayList.Update()
End Sub
Protected Sub lnkbtnEventDescription_Click(ByVal sender As Object, ByVal e As EventArgs)
Dim lnkAddr As LinkButton = CType(sender, LinkButton)
EventDetails.SetupEventDetails(CInt(lnkAddr.CommandArgument))
End Sub
Protected Sub gvPersonEvents_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles gvPersonEvents.RowCommand
If e.CommandName = "View" Then
Dim I As Integer
I = CInt(e.CommandArgument)
End If
End Sub