I have "add new folder" button in my asp.net form and I need to show dialog in order to make the user able to enter the folder name, how can I accomplish that in asp.net?
Add an OnClientClick="ShowPopup();return false;" to the button, and then do:
function ShowPopup() {
var div = document.getElementById("divtoshow");
div.style.display = "block";
}
In the pure form, and then make the div absolute position and reposition the popup to center over the button. Are you using JQuery? You could use JQuery dialog, or use JQuery to position the element, or if you are using AJAX Control toolkit, use the ModalPopupExtender. There are options, but it's hard to tell without knowing what you are using.
HTH.
You have a couple options.
You could include the textbox on the form so that the new folder name is already included.
You could redirect the user to a new form to enter the new folder name.
You could use javascript to include #2 as a thickbox on the current page.
There are other options, it's all in how you want to do it
Update: To accomplish #3, you would have to make another asp.net page, and use a library like Colorbox and load an IFrame inside the thickbox/lightbox
Related
I have an image on my page than can be changed from a fileupload asp.net control on the page, i want to provide and alternative to clicking the button by allowing the user to click their image. i gave the fileupload a class 'jqueryPhotoUploadTrigger' and it renders like this:
<input type="file" name="ctl00$ctl00$ctl00$ContentPlaceHolderDefault$C2kMasterPlaceholder$ucEditDetails_20$photoupload" id="ctl00_ctl00_ctl00_ContentPlaceHolderDefault_C2kMasterPlaceholder_ucEditDetails_20_photoupload" class="jqueryPhotoUploadTrigger" />
i then have jquery script at the bottom:
$(document).ready(function() {
$("#clickMyColl").click(function () {
alert("image has been clicked");
$('.jqueryPhotoUploadTrigger').click();
});
});
the alert does show so i know the script is firing when i click the image. i was just hoping the .click would fire the event on the button but it didnt. can i do it this way or must i find an alternative?
you could do a submit or use the Ajax way, there are functions like __doPostback(), look in the ASP.NET documentation.
You could either to an ajax call of have an ImageButton on the page with a transparent image (so its hidden)
then in your jquery you could use
$("#yourhiddenbutton").click();
this would then fire the server side click event
Maybe you've to set the focus on the input (if I've understood your question):
$('.jqueryPhotoUploadTrigger').focus();
You are using the ID of your image as "#clickMyColl", but instead use the ID as it is rendered (jQuery does not know the asp ID): "ctl00_ctl00_ctl00_ContentPlaceHolderDefault_C2kMasterPlaceholder_ucEditDetails_20_photoupload"
Alternatively, you could use the class to select:
$(".jqueryPhotoUploadTrigger").click(function ...
I am using IFrame in my ASP.NET pages. For the page that I am referencing in my IFrame, I have a gridview (I also have CommandField that referencing another asp.net page) and paging enabled.
I wanted to display a new page (outside of Iframe) when a user clicks on the commandfield in the gridview. In order to do that I set form's target to "_parent". This works fine (it open a new page outside of Iframe). Now, my problem is that when i click on the paging to go to next page in the gridview, it also opens the gridview outside of IFrame (which I dont want to happen). I want it to open within the Iframe.
Is there any way I could set the target as I needed?
Thanks.
Use some jQuery: (Just threw this idea together, not tested)
$("#myElement").click(function() {
if(window.location != window.parent.location)
{
// window is in iframe
$(this).attr("target", "_self");
}else{
$(this).attr("target", "_parent");
}
});
LinkButtons are giving me headaches. I thought, foolishly, that they allowed you to create programmatic links. Obviously this is not the case (by design), as they have behave nothing like normal links - you can't see your address when you hover over them, you can't open them in a new tab, etc.
Is there an alternative in .NET that actually lets you programmatically create a true HTML link? The ability to open multiple items in tabs is sort of a requirement. I've looked into styling a Button to look like a link, but it still behaves like a button, so this won't work either. Any ideas?
EDIT: Sorry, forgot: can't use HyperLink, as I need the ability to send CommandArguments, set OnClick events, etc. It needs to function as a button still.
The HyperLink control.
Set the href using the NavigateUrl property, and tagets (for new windows/tabs) can be set using the Target property
Edit to respond to question edit
I'm not really sure what you're after - your question is asking for a control that "functions like a normal link", so that clicking on it can open in a new window/tab, but your edit says you want to be submitting CommandArguments and using the OnClick event - so not a normal link.
The problem you've got here is that the PostBack processing of command arguments and OnClick events happens at the server, but the "open in a new window" happens on the client (using the "target" attribute of the anchor tag, or possibly with JavaScript) - these two don't really mix all that well.
A couple of options spring to mind:
Use a LinkButton, and if you handle a PostBack, output some JavaScript to open the new page in a new window.
Use a HyperLink control with a target and set the "CommandArguments" as a querystring element to the link - you can then process that on the catching page that opens in the new tab.
You can also cause JavaScript to fire onClick using the Attributes collection:
// Create a hyperlink
HyperLink link = new HyperLink();
link.NavigateUrl = "/somepage.aspx?arg=First";
link.Target = "_blank"; // Open in a new window
// Add a client side onClick event calling someMethod function with a reference
// to the link, and making sure the link processing stops.
link.Attributes.Add("onClick", "someMethod(this);return false");
You mean HyperLink?
Of course you could always use the a tag in HTML.
EDIT: When you hover over a link, the browser displays the target. When you hover over a LinkButton, the browser displays the javascript call that will execute the function server side. I'd say the best you can do is display the target page in the ToolTip, since I think it would be pretty tough to display it in the browser.
If you use a LinkButton you will be able to set the command arguments and the onclick method in your code behind. By doing so, you will no longer be able to open the link in a new window as you have found out.
One of the reasons that you cannot open a LinkButton in a new window is because it is doing a postback to the same page.
I think you either have to use a HyperLink control and pass the command argument as a query string parameter or use a LinkButton control and loose the open in a new tab functionality.
If you pass the argument as a query string parameter, then you can check for that param in page load and still call your onclick function which you were going to use for your LinkButton.
Hope this is clear and it helps you.
I have 3rd party user control (a captcha control), which has a captcha image, a text box within it.
I am using the above user control in my webpage. I have a 3 submit buttons on my webpage (Validate Captcha, Submit Page, Add User). When I click the Validate Captcha submit button using the mouse, I am validating whether captcha is empty and showing a javascript alert.
The problem comes when I enter the valid captcha text in the textbox and hit enter key when the cursor is in the textbox. The page just refreshes. I am unable to add keypress event to textbox and call Validate Captcha button event as I am using the 3rd party user control which I cannot modify.
Also, Page.ClientScript.RegisterHiddenField(...) will not work in my case as I have two other submit button inside the same page.
Only option left is to enclose these in panels and set default button.
Please let me know if anyone has any better options for achieving this.
Greetings! I too use alot of third party controls. The thing to remember about these controls, it that in the end they just emit HTML. This means you can use the DOM to access and attach event handlers such as onKeyPress. The trick is to identify how your control creator named the control you are looking for, in this case a {textbox}. The easiest way to achieve this is to simply run the page and view the page source. It is there that you can find the name as it is rendered and sent to the browser, after that all you have to do us use document.getElementByID to get the object and setup your handler
Example:
<script>
//Place this AFTER your textbox control is declared in the HTML
//Get the textbox
var textbox = document.getElementById('nameOfRenderedControlHere');
//Assign the event handler and function you want it to call
textbox.onclick = function() { validateCaptcha(); };
function validateCaptcha()
{ //Do your Stuff here }
</script>
That should be it..havent tested, let me knwo if you run into questions.
Put the captcha in its own <asp:Panel> and add a DefaultButton property for the panel with the ID of the captcha's submit button.
I'm looking for the simplest way of popping a modal search window on top of an ASP.NET 3.5 application to look up values for a field. I've got a screen for users to add courses; users need to be able to choose an instructor by searching for instructors in a popup.
So - the popup would have a textbox and a gridview with results; clicking the "choose" button in a result would populate the instructor field on the calling form.
What's the simplest way to achieve this?
Try using jQuery inside a UserControl with something like the tutorial from yensdesign.
The UserControl I created with this approach provided the user the option to set their preferences for the site. I found with this approach it was easier to control the interaction between the modal window and the calling window than calling a new popup browser window. One also doesn't have to worry about popup blockers getting in the way.
Is this helpful or are you looking for more detail?
A very simple approach would be to add javascript to your page to popup a new browser window dialog, something like this:
function fnFieldSearch(searchURL)
{
var wndSearch = window.open(searchURL,"SearchPopup","toolbar=yes,width=600,height=400,directories=no,status=yes,scrollbars=yes,resizable=yes,menubar=no");
wndSearch.focus();
}
On the modal search page, use javascript to send the search value back:
window.opener.document.FormName.ControlName.value = 'whatever';