阻止用户在文本框中修改日期

时间:2010-08-04 16:27:57

标签: c# asp.net calendar

我有一个文本框,旁边有一个日历图标。单击图标时,弹出窗体将显示日历控件。我设置了它们只能选择周末日期(星期六),并且该日期显示在文本框中。

我想阻止用户编辑文本框。我尝试过使用readonly和enabled属性,但这不起作用。

如何阻止用户修改文本框中的日期?

(我正在使用网站的.Net时间跟踪器入门套件模板)

5 个答案:

答案 0 :(得分:2)

我是通过将文本框设置为服务器端的只读属性来实现此目的。

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        txtStartDate.Attributes.Add("readonly", "readonly");
        txtEndDate.Attributes.Add("readonly", "readonly");
    }
}

它有效,并且它不依赖于JavaScript。

答案 1 :(得分:1)

尝试使用Label,样式看起来像TextBox。您还可以将TextBox的Enabled属性设置为false,但这可能对您无效,具体取决于您正在执行的操作。替代方案可能是使用一些JS来防止对值的更改,但这可能会非常复杂。

答案 2 :(得分:0)

我知道这是一个黑客攻击,但您可以随时将所选日期保存为变量。然后使用在更改值时调用的actionlistener。如果日期无效(即不是星期结束日期),则将文本框替换为已保存的变量。否则,如果日期是值,则替换变量,如果用户更改它。

答案 3 :(得分:0)

您可以在blur()事件中调用javascript onfocus

<asp:TextBox onfocus="blur();" ... />

答案 4 :(得分:0)

如果用户不应该编辑文本框中的文本,则不应使用文本框。 使用标签。