我的页面有一个标签和一个下拉列表,其中包含时区。每次更改时区下拉列表中的值时,是否可以自动更改标签文本以显示下拉列表中的选定值?我该怎么做呢?
答案 0 :(得分:1)
您可以编写一个javascript函数来更新您的标签,并从下拉列表的onchange属性中调用它。
答案 1 :(得分:0)
选择下拉列表时,使用Ajax或客户端javascript来检测。 如果您确实使用javascript,请确保在关闭javascript时此行为也有效。 I.E.提交页面并更新服务器端的标签。
答案 2 :(得分:0)
要重新加载标签,您必须在DropDownList中设置AutoPostBack。 因此,您可以在Page_Load TimeZoneInfo上使用。
在MSDN上找到 // Get Tokyo Standard Time zone
TimeZoneInfo tst = TimeZoneInfo.FindSystemTimeZoneById("Tokyo Standard Time");
DateTime tstTime = TimeZoneInfo.ConvertTime(thisTime, TimeZoneInfo.Local, tst);
Console.WriteLine("Time in {0} zone: {1}", TimeZoneInfo.Local.IsDaylightSavingTime(tstTime) ?
tst.DaylightName : tst.StandardName, tstTime);
Console.WriteLine(" UTC Time: {0}", TimeZoneInfo.ConvertTimeToUtc(tstTime, tst));
首先,您必须按ID查找TimeZone。您可以使用以下方法检索所有ID:
System.Collections.ObjectModel.ReadOnlyCollection<TimeZoneInfo> TimeZoneColl = TimeZoneInfo.GetSystemTimeZones();
然后在foreach cicle中,您可以获取ID并绑定下拉列表值。
毕竟你只需要像这样对例子进行参数化:
TimeZoneInfo tst = TimeZoneInfo.FindSystemTimeZoneById(*dropdownlistselectedvalue*);
DateTime tstTime = TimeZoneInfo.ConvertTime(thisTime, TimeZoneInfo.Local, tst);
Label1.Text = tstTime;
这是绑定你的下拉列表的方法:
System.Collections.ObjectModel.ReadOnlyCollection<TimeZoneInfo> TimeZoneColl = TimeZoneInfo.GetSystemTimeZones();
ddlTimeZones.DataSource = TimeZoneColl;
ddlTimeZones.DataTextField = "StandardName";
ddlTimeZones.DataValueField = "Id";
ddlTimeZones.DataBind();
这是一个有效的例子:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
System.Collections.ObjectModel.ReadOnlyCollection<TimeZoneInfo> TimeZoneColl = TimeZoneInfo.GetSystemTimeZones();
ddlTimeZones.DataSource = TimeZoneColl;
ddlTimeZones.DataTextField = "StandardName";
ddlTimeZones.DataValueField = "Id";
ddlTimeZones.DataBind();
}
else
{
ShowTime();
}
}
private void ShowTime()
{
DateTime thisTime = DateTime.Now;
TimeZoneInfo tst = TimeZoneInfo.FindSystemTimeZoneById(ddlTimeZones.SelectedValue);
DateTime tstTime = TimeZoneInfo.ConvertTime(thisTime, TimeZoneInfo.Local, tst);
lblShowTime.Text = tstTime.ToShortTimeString();
}
}
在名为“ddlTimeZones”的页面上添加一个下拉列表,在名为lblShowTime的标签上添加一个下拉列表。
希望有所帮助...