Showing posts with label users. Show all posts
Showing posts with label users. Show all posts

Wednesday, March 28, 2012

Updating a Text Box after the modalpopup closes.

Hi There

I'm attempting to create a function for users that allows them to browse their intranet site and save links within the intranet as a collection of 'my links'. To do this I'm using an iFrame embedded within the modalpopup extension. Everything is working with the exception of the final part (which is quite frustrating) - Basically I need to populate a textbox with the current location in the iFrame. I know that I'm ready the value correctly but the text box is just not updating. I've inserted the user control below - all you need to do is insert the control into a new page and then point the iframe at a starting page. Any help greatly appreciated as I could do with an answer to this issue as soon as possible.

<%@dotnet.itags.org. Control Language="C#" AutoEventWireup="true" CodeFile="test.ascx.cs" Inherits="includes_mylinks" %>
<%@dotnet.itags.org. Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>
<script type="text/javascript">
function onOk() {
var NewURLTextBox = parent.document.getElementById("<%= newurl.UniqueID %>");
var NavFrame = parent.frames(0);
NewURLTextBox.InnerText = NavFrame.location.href;
NewURLTextBox.InnerHTML = NavFrame.location.href;
NewURLTextBox.Value = NavFrame.location.href;
alert(NavFrame.location.href);
}
</script>
<asp:ScriptManager runat="Server" EnablePartialRendering="true" ID="ScriptManager" />
<h3>Add a new link</h3>
<table width="100%">
<tr>
<td style="width: 100px">Title:<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="newurldescription"
ErrorMessage="Please supply a Title" SetFocusOnError="True" ValidationGroup="NewURL">*</asp:RequiredFieldValidator>
</td>
<td><asp:TextBox runat="server" Text ="" ID="newurldescription" /></td>
</tr>
<tr>
<td>Address:<asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ControlToValidate="newurl"
ErrorMessage="Please specify the URL you wish to save" SetFocusOnError="True" ValidationGroup="NewURL">*</asp:RequiredFieldValidator>
</td>
<td><asp:TextBox runat="server" ID="newurl" EnableViewState="false" /> <asp:LinkButton ID="cmdBrowse"
runat="server">[Browse]</asp:LinkButton></td>
</tr>
<tr>
<td>Position:<asp:RangeValidator ID="RangeValidator1" runat="server" ControlToValidate="newurlposition"
ErrorMessage="Please enter a value between 1 and 9" MaximumValue="9" MinimumValue="1"
SetFocusOnError="True" Type="Integer" ValidationGroup="NewURL">*</asp:RangeValidator>
</td>
<td><asp:TextBox runat="server" Text ="" ID="newurlposition" MaxLength="1" Width="15px" /></td>
</tr>
</table>
<asp:ValidationSummary ID="ValidationSummary1" runat="server" />
<asp:Panel ID="BrowsePanel" runat="server">
<asp:Panel ID="Panel3" runat="server" Style="cursor: move;background-color:#DDDDDD;border:solid 1px Gray;color:Black">
<div>
<p>Navigate to the Page that you would like to add to My Links:</p>
</div>
</asp:Panel>
<iframe id="BrowseIntranet" runat="server" src="http://pics.10026.com/?src=default.aspx" height="450px" width="850px" ></iframe>
<p style="text-align: center;">
<asp:Button ID="OkButton" runat="server" Text="Select" />
<asp:Button ID="CancelButton" runat="server" Text="Cancel" />
</p>
</asp:Panel>
<cc1:ModalPopupExtender ID="ModalPopupExtender" runat="server"
TargetControlID="cmdBrowse"
PopupControlID="BrowsePanel"
BackgroundCssClass="modalBackground"
OkControlID="OkButton"
OnOkScript="onOk()"
CancelControlID="CancelButton"
DropShadow="false"
PopupDragHandleControlID="Panel3" />

Hi,

I was searching for somethig, but came across your post. I read an artcle to update the server control on postback. the url ishttp://www.aspdotnetcodes.com/ModalPopup_Postback.aspx . in this article they make use of label control, please try it with your TextBox.. and let me know if if helps you.

Thanks

Monday, March 26, 2012

Updating MasterPage panel from content page

Hello,

I have created a shopping cart which users can add products to within an update panel in a content page. However in the masterpage there is a 'basket' that displays how many products are currently in the basket. I need to find a way of updating this basket whenever the updatepanel in the content page is reloaded. Is this possible.

Thanks,

Curt.

Yes, create a Public Property on your Master Page and set the baskek based on this value. The value can then be updated from your content page (you can get access to the Master Page via Page.Master).


Thank you for your reply.

Could you give me some more help on how to do this as I don't have much experience with Public Properties just yet?

Thanks.


Here's a sample Public Property with a type of String:

Public Property Name()As String Get Return _NameEnd Get Set(ByVal valueAs String) _Name = valueEnd Set End Property

Updating Nested Repeaters

I'm working on a page with nested repeaters. The child repeater is for comments that can be added by users. My problem is updating the child repeater when a comment is added. I have something like:

<UpdatePanel id="parentUpdatePanel">

<repeater id="parent">

<item stuff>

<UpdatePanel id="commentUpdatePanel">

<repeater id="comments">

<comment stuff>

</repeater>

<a href="http://links.10026.com/?link=javascript:AddComment(itemID)">Add Comment</a>

</UpdatePanel>

</repeater>

</UpdatePanel>

The AddComment function brings up a div-type-dialog to enter the comment. It's doing an AJAX postback to add the comment, but I can't find a way to get back to my comment repeater to update it with the added comment. The comments are also in an asp:panel, so that I can hide them until the user clicks on a "View Comments" link under each item. I could possibly just collapse the panel, and when they re-expand it, it will reload just fine, but that won't look very nice.

I assume that when the parent repeater is databound you are also binding the child repeater for each item in the parent repeater, am I correct? If this is the case if you were to call databind again for your parent repeater shouldn't this rebind the child comment repeater within?


I've found a way around my issue. I tacked on a hidden field in my parent repeater with the item's ID value so I can do a FindControl on the hidden field and match the item ID up. Then, if I know which item I'm dealing with in the parent I can also do a FindControl on my child repeater and update it. Less elegant than I'd like, but it works quite well.