点击日历日打开文本框

本文关键字:文本 日历 | 更新日期: 2023-09-27 18:10:44

我看到了很多关于这个解决方案的帖子,但没有得到令人满意的答案我正试图简单地在日历单元格上添加文本框+按钮,并在单元格单击时打开它,

我可以在点击单元格时弹出。但不能使用CellSizeTextbox

   <asp:Calendar
            ID="Calendar2" 
            runat="server"
            NextPrevFormat="FullMonth"
            SelectionMode="Day"
            DayNameFormat="Full"
            OnDayRender="Calendar1_DayRender"
            VisibleDate="10/7/2008" OnSelectionChanged="Calendar2_SelectionChanged"
            >
        </asp:Calendar>

并调用DayRender事件

protected void Calendar1_DayRender(object sender, DayRenderEventArgs e)
{
     Label lbl = new Label();
     lbl.Text = e.Day.DayNumberText.ToString();
     lbl.Attributes.Add("onclick", "JavaScript:void(window.open('Test/Default.aspx'))");
     lbl.Style.Add("cursor", "pointer");
     e.Cell.Controls.Add(lbl);
}

如何为Textbox执行此操作?

点击日历日打开文本框

内部日历事件protected void Calendar1_DayRender(对象发件人,DayRenderEventArgs e({按钮btn=新按钮((;

        btn.Text = "+";
        btn.Attributes.Add("onclick", "javascript:return btnClick(" + e.Day.DayNumberText + ")");
        btn.Style.Add("cursor", "pointer");
        TextBox txt = new TextBox();
        txt.ID = e.Day.DayNumberText.ToString();
        txt.Attributes.Add("style", "display:none;");
        txt.Attributes.Add("onclick", "JavaScript:void(window.open('Test/Default.aspx'))");
        e.Cell.Controls.Add(txt);
        e.Cell.Controls.Add(btn);
    }

在aspx文件中添加脚本标记

<script type="text/javascript">
    function btnClick(id){
        var txt = document.getElementById(id);
        txt.attributes.removeNamedItem("style");
        return false;
    }
</script>

由于您使用了javascript,我坚持您的兼容性。但我建议你使用jquery。