我正在尝试更改DateTimeControl在Sharepoint中显示的“时间”下拉列表中的默认值。我希望增加15,而不是5分钟。任何人都知道如何做到这一点?我可以重载方法吗?
最佳答案
实际上,时间下拉列表及其初始化程序都是作为DateTimeControl类的私有数据成员实现的,因此您不能直接更改这些值。但是,分钟下拉列表是在OnPreRender内部准备的,我们可以获取控件并间接重置其值以获得所需的行为。这是一种方法
public class MyDateTimeControl : DateTimeControl
{
protected override void Render(HtmlTextWriter output)
{
DropDownList minuteControl = null;
string[] newMinutesRange = new string[] { "00", "15", "30", "45" };
string[] newMinutesRangeExt = new string[] { "00", "15", "30", "45", "" };
int index = 0;
int selectedMinutes;
try
{
if (!this.DateOnly && this.Controls.Count == 4)
{
minuteControl = (DropDownList)this.Controls[2];
}
}
catch { }
if (minuteControl != null && !this.DateOnly)
{
selectedMinutes = Convert.ToInt32(minuteControl.SelectedValue);
if (selectedMinutes % 15 > 0)
{
index = 4;
newMinutesRangeExt.SetValue(selectedMinutes.ToString(), index);
newMinutesRange = newMinutesRangeExt;
}
else
{
index = selectedMinutes / 15;
}
minuteControl.Items.Clear();
minuteControl.SelectedIndex = 0;
minuteControl.DataSource = newMinutesRange;
minuteControl.DataBind();
minuteControl.SelectedIndex = index;
}
base.Render(output);
}
}
希望这可以帮助
关于c# - Sharepoint中的DateTimeControl(C#),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/972588/