thanks. Here it is. As you can see hfCurrentEdit stores the value from the gridview and then it forces a click to trigger the modal popup. The objectdatasource uses
hfcurrentedit as a parameter. The problem is that my modal popup is always blank now. I give the hfCurrentEdit a default of "0" so it initially doesn't find a matching
record. When a user selects a row, the DetailsView used to refresh with the updated ID value. Now it does nothing.
Each gridview row has an image button that calls fireFakeButton with the record ID.
function
getElementById_s(id){
var
obj = null;
if
(document.getElementById){
/* Prefer the widely supported W3C DOM method, if
available:-
*/
obj = document.getElementById(id);
}
else if(document.all){
/* Branch to use document.all on document.all only
browsers. Requires that IDs are unique to the page
and do not coincide with NAME attributes on other
elements:-
*/
obj = document.all[id];
}
/* If no appropriate element retrieval mechanism exists on
this browser this function always returns null:-
*/
return
obj;
}
function
fireFakeButton(id)
{
var
h=getElementById_s("ctl00_MainContent_hfCurrentEdit");
h.value=id;
$get(
'ctl00_MainContent_lbDummy').click();
return false;
}
<
asp:HiddenField ID="hfCurrentEdit" runat="server" Value="0" />
<
asp:LinkButton ID="lbDummy" runat="server" CssClass="nodisplay"></asp:LinkButton>
<
ajaxToolkit:ModalPopupExtender ID="ModalPopupExtender" TargetControlID="lbDummy" PopupControlID="Panel1" BackgroundCssClass="modalBackground" DropShadow="true" CancelControlID="CancelButton" runat="server">
</
ajaxToolkit:ModalPopupExtender>
<!-- Edit Page Details -->
<
asp:Panel ID="Panel1" runat="server" CssClass="modalPopup" style="display:none">
<
asp:UpdatePanel ID="upPageDetails" runat="server">
<
ContentTemplate>
<
asp:DetailsView ID="dvPageDetails" DefaultMode="Edit" DataKeyNames="ID" AutoGenerateRows="False" DataSourceID="odsPageDetails" runat="server" Width="300px">
<HeaderTemplate>Edit Page Details</HeaderTemplate>
<Fields>
<asp:CheckBoxField HeaderText="Default?" DataField="IsDefault" />
<asp:TemplateField HeaderText="URL:">
<EditItemTemplate>
<asp:HyperLink ID="hlUrl" NavigateUrl='<%# Eval("Url","~/{0}") %>' runat="server">
<%
#Eval("Url") %>
</asp:HyperLink>
</EditItemTemplate>
</asp:TemplateField>
<asp:BoundField HeaderText="Name:" DataField="Name" />
<asp:TemplateField HeaderText="Description:">
<ItemTemplate>
<%
#Eval("Description") %>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="tbDescription" Text='<%# Bind("Description") %>' TextMode="MultiLine" Rows="3" runat="server"></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Template:">
<ItemTemplate>
<asp:DropDownList ID="ddMasterPages" DataTextField="Name" DataValueField="ID" selectedValue='<%# Eval("MasterPageID") %>' Enabled="False" DataSourceID="sdsMasterPages" runat="server">
</asp:DropDownList>
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList ID="ddMasterPages" DataTextField="Name" DataValueField="ID" selectedValue='<%# Bind("MasterPageID") %>' Enabled="True" DataSourceID="sdsMasterPages" runat="server">
</asp:DropDownList>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Type:">
<ItemTemplate>
<asp:DropDownList ID="ddPageTypes" DataTextField="Name" DataValueField="ID" selectedValue='<%# Eval("Type") %>' Enabled="False" DataSourceID="odsPageTypes" runat="server">
</asp:DropDownList>
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList ID="ddPageTypes" DataTextField="Name" DataValueField="ID" selectedValue='<%# Bind("Type") %>' Enabled='False' DataSourceID="odsPageTypes" runat="server">
</asp:DropDownList>
</EditItemTemplate>
</asp:TemplateField>
<asp:CommandField ButtonType="Button" UpdateText="Update" ShowCancelButton="false" ShowDeleteButton="False" ShowEditButton="True" />
</Fields>
</asp:DetailsView>
</
ContentTemplate>
</
asp:UpdatePanel>
<
center><asp:Button ID="CancelButton" runat="server" Text="Close"></asp:Button>
</
center>
</
asp:Panel>
<!-- End Edit Page Details -->
<
asp:ObjectDataSource ID="odsPageDetails" runat="server" TypeName="CartPage" SelectMethod="GetPageDetails" UpdateMethod="UpdatePageDetails" InsertMethod="InsertPage" OnUpdated="odsPageDetails_Updated" OnInserted="odsPageDetails_Inserted" OnSelected="odsPageDetails_Selected">
<SelectParameters>
<asp:ControlParameter ControlID="hfCurrentEdit" Type="Int32" Name="PageID" PropertyName="Value" />
</SelectParameters>
<InsertParameters>
<asp:SessionParameter Name="StoreID" SessionField="StoreID" Type="Int32" />
</InsertParameters>
</asp:ObjectDataSource>
<!-- Manage Pages -->
<
asp:UpdatePanel ID="UpdatePanelGV" runat="server" UpdateMode="Conditional">
<
ContentTemplate>
<
asp:GridView Width="550px" ID="gvManagePages" DataSourceID="odsManagePages" AutoGenerateColumns="false" AllowPaging="true" AllowSorting="true" runat="server">
<Columns>
<asp:TemplateField HeaderText="">
<ItemTemplate>
<asp:ImageButton ID="ibEdit" ImageUrl="~/images/edit.gif" OnClientClick='<%# WriteEditLink() %>' CommandName="EditPageDetails" runat="server" ToolTip="Edit" />
<asp:ImageButton ID="ibHtml" ImageUrl="~/images/html.gif" OnClientClick='<%# WriteHtmlLink() %>' CommandName="EditPageHtml" runat="server" ToolTip="Html" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="Name" HeaderText="Name" ReadOnly="true" />
<asp:BoundField DataField="Description" HeaderText="Description" ReadOnly="true" />
<asp:BoundField DataField="TypeName" HeaderText="Type" ReadOnly="True" />
<asp:BoundField DataField="IsDefault" HeaderText="Default" ReadOnly="False" />
<asp:TemplateField HeaderText="">
<ItemTemplate>
<asp:ImageButton runat="server" ID="ibDelete" Visible='<%# ((bool)Eval("IsSystem")) == true ? false : true %>' ToolTip="Delete" ImageUrl="~/images/delete.gif" OnClientClick="return(confirm('Are you sure you want to delete this page?'))" CommandName="Delete" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</
ContentTemplate>
</
asp:UpdatePanel>
<!-- End Manage Pages -->