Html control failing to hit codebehind method - asp.net

I have a html button control which is targeting to execute code behind method but it is failing to do so I googled but couldn't fix so far..
<td>
<input type="button" runat="server" id="btnSend" class="btn" value="Send" onserverclick="btnSend_ServerClick" />
</td>
on view source I found the below..
<input onclick="__doPostBack('ctl00$ContentPlaceHolder1$btnSend','')" name="ctl00$ContentPlaceHolder1$btnSend" type="button" id="ctl00_ContentPlaceHolder1_btnSend" class="btn" value="Send" />
and the code behind method is as belwo..
protected void btnSend_ServerClick(object sender, EventArgs e)
{}
don't know what's preventing from hitting the method any suggestion/help on this would be of gr8 help.
In addition to above would also like to mention that the control is with in
<asp:UpdatePanel ID="ComposeUpdatePanel" runat="server"> and tried following this link
OnServerClick for button not working
without success..

I figured out the issue there was a textarea which has the content of the mail to which reply is being send and to display in format
<PRE>message content</PRE>
so the tag was causing the issue.
How ever removing the PRE tag causes the eventto fire but is there an alternate to retain format in TextArea so that the mail content would be displayed the way it was.

Related

How to send text to content page as query string from Master Page

I have a search textbox that I tried wrapping in a form element:
<form id="searchForm" method="GET" action="Search.aspx">
<input name="term" type="text" id="searchTerm" class="nav-search" size="30" />
<input type="submit" value="submit" style="display:none;"/>
</form>
I can't get it to redirect to the content page (Search.aspx) with the query string (term) from the Master Page.
I tried wrapping it in an ASP:Panel and using the DefaultButton Property but that wouldn't call the Click event in code behind.
I'm perplexed as I've searched for a solution for hours and this seems like a such common task. Thanks.
Change your code to this
<input name="term" type="text" id="searchTerm" runat="server" class="nav-search" size="30" />
<asp:Button ID="searchsubmit" OnClick="searchsubmit_Click" runat="server" Text="Search" />
in Site.Master.cs add something like this
protected void searchsubmit_Click(object sender, EventArgs e)
{
Response.Redirect("~/search.apsx?content=" + searchTerm.text);
}
This will allow to search with button click, if you want to hide it, add also panel around first code, saying that this is a button to automatically press when enter is pressed Something like this:
<asp:Panel ID="UserPanel" runat="server" DefaultButton="searchsubmit">

Adding from within from runat server asp.net

I am having a signup page at the upper of the page there is a form tag that is runat server. I want to add a code that is given by paypal take payment. That code contains a simple html controls not asp.net controls but when i paste to the code to the page then it don't submit it to the action it postback the form and don't do with paypal code at all. when i checked the source of the code it doesn't shows the from tag given by the paypal. it doesn't rander the form given by the paypal. I also have to take the form at top because my page has asp.net controls that's why that is necessary.
Please tell the solution
You must not use asp.net form tag in asp.net while payment processing.
Use this
<body onload="document.paypal.submit();">
<form name="paypal" action='<%= ConfigurationManager.AppSettings["PayPalSubmitUrl"] %>'
method="post">
// rest html goes here
</form>
</body>
I always do it like this for paypal processing
I assume you are using PayPal Standard.
If so, collect submitted values from (regular ASP.Net) form. Then forward them to PayPal like this -
protected void SubmitRadButton_Click(object sender, EventArgs e)
{
string paypalUrl = IsTestMode ?
"https://www.sandbox.paypal.com/us/cgi-bin/webscr" :
"https://www.paypal.com/us/cgi-bin/webscr";
var builder = new StringBuilder();
builder.Append(paypalUrl);
builder.AppendFormat("?cmd=_xclick&business={0}", EmailTextBox.Text);
builder.Append("&lc=US&no_note=0&currency_code=USD");
builder.AppendFormat("&item_name={0}", ItemNameHiddenField.Value);
builder.AppendFormat("&amount={0}", AmountTextBox.Text);
builder.AppendFormat("&return={0}", ReturnUrl);
builder.AppendFormat("&cancel_return={0}", CancelUrl);
builder.AppendFormat("&undefined_quantity={0}", 1);
builder.AppendFormat("&item_number={0}", ItemNumberHiddenField.Value);
builder.AppendFormat("&cpp_header_image={0}", HeaderImage);
HttpContext.Current.Response.Redirect(builder.ToString());
}
I tried the same but didn't work. Please see my paypal code that they provided and let me know how to do this. I have tried the above method previously but this time isn't working with code. May be it is for subscription code different. Read the code following and let me know about how to use this.
<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_s-xclick" />
<input type="hidden" name="hosted_button_id" value="LL5LZEB8L6T8S" />
<input type="image" src="https://www.sandbox.paypal.com/en_US/i/btn/btn_subscribeCC_LG.gif"
name="submit" alt="PayPal - The safer, easier way to pay online!" />
<img alt="" border="0" src="https://www.sandbox.paypal.com/en_US/i/scr/pixel.gif"
width="1" height="1" />
</form>
Thanks

Password-Box not showing any content

I have a small websolution that needs the user to input a password. I have two input boxes
<input type="password" runat="server" id="m_txtPassword1"/>
If I set some chars to the Value-property of the control like this:
m_txtPassword1.Value="someChars";
The password box is rendered empty. No bullets are shown. If I look into the rendered html-source, also no value-tag has been rendered. If I change the type to
<input type="text" runat="server" id="m_txtPassword1"/>
the chars are shown. Is this by design? How can I disable this feature?
Please note, I don't want to put a real password into the value-property, I only want to show the user that there is already a password set, and this is IMO done best with some 8 bullets in the input-control. But for this, I need the possibility to set the value-property of the control.
Update
For all, having the same problem: I have tried to declare <asp:textbox id="m_txtPassword1" runat="server" TextMode="Password" /> with the same result. Also m_txtPassword1.Attributes["value"]="someChars" has not helped.
It seems that this is realy not possible.
As a workaround, I declared the password-boxes as plain html without the runat="server" and have set the value-property in markup (via two properties from the code-behind). Not nice but I really want to show the user that he has already entered a password.
Another workaround would be to set the value through javascript on load.
This is by default. You cannot set a password.
I make this works,
<html>
<head>
<script type="text/javascript">
function alertValue()
{
alert(document.getElementById("password1").value);
}
function setpassword()
{
password1.value="someChars";
}
</script>
</head>
<body>
<form>
<input type="password" id="password1" value="" />
<input type="button" id="button1" onclick="alertValue()" value="Show default value" />
<input type="button" id="button2" onclick="setpassword()" value="Set value" />
</form>
</body>
</html>
Try this:
http://jsbin.com/ocexo5
It is by design, for security reasons - so that the password is not in the
HTML in plain text.
Now, you could write out javascript to set the value property of the textbox
on the client, of course this would still mean that you have the password in
plain text in the HTML.
Here is example of the page:
Markup:
<script type="text/javascript">
function setPwd()
{
var Pwd = "<%=Pwd %>";
var txtText = document.getElementById("MainContent_txtText");
txtText.value = Pwd;
}
</script>
<input type="password" id="txtText" runat="server"/>
And code-behind:
public partial class _Default : System.Web.UI.Page
{
public string Pwd;
protected void Page_Load(object sender, EventArgs e)
{
Pwd = "password";
ClientScript.RegisterStartupScript( this.GetType(),"somescript","setPwd();",true);
}
}
Textbox11.Attributes.Add("Value",whatever_your_password_is)

JS callback on asp button

Um, I have this guy:
<div class="buttonRight"><asp:Button ID="btnOK" runat="server" Text="OK" Width="68px"/></div>
which renders out to
<div class="buttonRight">
<input type="submit" name="_$_$pc$pc$tabTO$_$uc0$popupSelectCompetition$btnOK" value="OK" id="____pc_pc_tabTO___uc0_popupSelectCompetition_btnOK" style="width:68px;" /></div>
I need to call some javascript on that button without altering its behavior otherwise. I tried putting an OnClick asp attribute but that seems to be for postbacks to call server code, not passing through a javascript hook to the rendered html.
I also don't understand how the input being type='submit' affects me.
Add your client-side code to the OnClientClick property :
<div class="buttonRight">
<asp:Button ID="btnOK" runat="server" Text="OK" Width="68px"
OnClientClick="alert('client side scripts here');"/>
</div>
OnClick property used for server side events.
Or add onclick attribute to your control like that at code behind :
btnOK.Attributes.Add("onclick", "alert('client side scripts here');");

Disabling a checkbox in asp.net

I am dynamically creating a CheckBox and setting the disabled property like this:
chk.Disabled = false.
This renders the following HTML:
<input type="checkbox" disabled="disabled" .../>
On the click of the checkbox, I have a JS function that tries to enable it by doing a:
//get reference to the checkbox
chk.disabled = false;
This does not work. Any help?
If your checkbox is disabled, your onclick wont be called
What you're trying to do is a bit odd. You're trying to enable a checkbox by clicking on the checkbox, which is disabled to start with. So, the onclick will not be registered until the checkbox is actually enabled.
Try the below to see what I mean.
<html>
<body>
<input id="cb" type="checkbox" disabled="disabled" onclick="this.disabled=!this.disabled;" />
<label for="cb">Click me</label>
<input type="button" value="Click me instead!" onclick="cb.disabled=!cb.disabled;" />
</body>
</html>
Hope that helps you out.
How are you dynamically creating the check box?
Keep in mind that ASP.NET will change the name of the check box you give it, especially if you add it on the code behind.
What you need to do is send to your JS function the clientId, which is the id the HTML item will get when render.

Resources