积极答复者
取不到ajax calendarextender控件的返回值

问题
答案
-
你好,
我明白你的意思,正常情况下前台就是显示年月日的,只不过你在使用这个日期时不想要日,而只要年月,我的意思就是你在后头用c#对得到的年月日做一个处理只要年月,这样应该没问题的。
Please mark the replies as answers if they help or unmark if not.
If you have any feedback about my replies, please contact msdnmg@microsoft.com
Microsoft One Code Framework- 已标记为答案 Song TianModerator 2012年4月6日 11:05
全部回复
-
因為CalendarExtender把選擇的日期設定給TextBox是Client端的動作,如果你要再把TextBox.Text設定給Label,可以透過像是Button做PostBack,來回到Server端去指定值給Label。
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="CalDemo.aspx.cs" Inherits="WebApplication2.CalDemo" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <ajaxToolkit:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server"> </ajaxToolkit:ToolkitScriptManager> <div> <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label> <br /> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <ajaxToolkit:CalendarExtender ID="TextBox1_CalendarExtender" runat="server" Enabled="True" TargetControlID="TextBox1"> </ajaxToolkit:CalendarExtender> <asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" /> <br /> </div> </form> </body> </html>
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace WebApplication2 { public partial class CalDemo : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void Button1_Click(object sender, EventArgs e) { Label1.Text = TextBox1.Text; } } }
或是你可以用另外一種作法,但由於在Client端設定Label.Text,PostBack回到Server端之後值會被清空,所以我用Hidden欄位來暫存TextBox.Text,回到Server端在指定給Label。
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="CalDemo.aspx.cs" Inherits="WebApplication2.CalDemo" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> <script type="text/javascript"> function SetLableText() { var txt = $get('TextBox1'); var lbl = $get('Label1'); var hid = $get('HiddenField1'); lbl.innerText = txt.value; hid.value = txt.value; } </script> </head> <body> <form id="form1" runat="server"> <ajaxToolkit:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server"> </ajaxToolkit:ToolkitScriptManager> <div> <asp:Label ID="Label1" runat="server" Text=""></asp:Label> <br /> <asp:TextBox ID="TextBox1" onchange="SetLableText();" runat="server"></asp:TextBox> <asp:HiddenField ID="HiddenField1" runat="server" /> <ajaxToolkit:CalendarExtender ID="TextBox1_CalendarExtender" runat="server" Enabled="True" TargetControlID="TextBox1"> </ajaxToolkit:CalendarExtender> <asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" /> <br /> </div> </form> </body> </html>
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace WebApplication2 { public partial class CalDemo : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void Button1_Click(object sender, EventArgs e) { Label1.Text = HiddenField1.Value; Response.Write(Label1.Text); } } }
以上說明若有錯誤請指教,謝謝。
http://www.dotblogs.com.tw/terrychuang/ -
你是怎么取TextBox1.Text的值?
- The blog of typewriter職人
- Convert C# to VB.NET
- /*If my concept is wrong ,please correct me.Thanks.*/
-
你好,
请看下面这个demo,里面用到了给textbox赋值:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Calendar_limit.aspx.cs" Inherits="test7" %> <%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> <script type="text/javascript"> function checkDate(sender, args) { if (sender._selectedDate < new Date()) { alert("You cannot select a day earlier than today!"); sender._selectedDate = new Date(); // set the date back to the current date sender._textbox.set_Value(sender._selectedDate.format(sender._format)) } } </script> </head> <body> <form id="form1" runat="server"> <asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server"> </asp:ToolkitScriptManager> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <asp:Button ID="Button1" runat="server" Text="Date" OnClientClick="test()" /> <asp:CalendarExtender ID="CalendarExtender1" BehaviorID="CalendarExtender1" runat="server" TargetControlID="TextBox1" PopupButtonID="Button1" OnClientDateSelectionChanged="checkDate"> </asp:CalendarExtender> </form> </body> </html>
Please mark the replies as answers if they help or unmark if not.
If you have any feedback about my replies, please contact msdnmg@microsoft.com
Microsoft One Code Framework -
谢谢你的解答,另外我还想问一下我选择日期在TextBox显示包含年月日三项,但是我在对数据库进行操作时最需要用到年月连接起来的字符串,例如"2012-3"这样的格式,请问如何操作才能做到在TextBox中显示年月日三项,但是只利用年和月这种效果?谢谢。
可以用Format来配置
<asp:TextBox runat="server" ID="TextBox1" />
<asp:CalendarExtender ID="CalendarExtender1" runat="server" TargetControlID="TextBox1" Format="yyyy-MM">
</asp:CalendarExtender>
</form>- The blog of typewriter職人
- Convert C# to VB.NET
- /*If my concept is wrong ,please correct me.Thanks.*/
-
你好,
其实这个你可以在后台处理textbox的日期时做一个转换就可以的,然后把转换后的进行数据操作。
Please mark the replies as answers if they help or unmark if not.
If you have any feedback about my replies, please contact msdnmg@microsoft.com
Microsoft One Code Framework -
你好,
我明白你的意思,正常情况下前台就是显示年月日的,只不过你在使用这个日期时不想要日,而只要年月,我的意思就是你在后头用c#对得到的年月日做一个处理只要年月,这样应该没问题的。
Please mark the replies as answers if they help or unmark if not.
If you have any feedback about my replies, please contact msdnmg@microsoft.com
Microsoft One Code Framework- 已标记为答案 Song TianModerator 2012年4月6日 11:05