如何在DNN 7中动态创建.ascx文件中的DNNDateTimePicker?

时间:2016-11-11 05:49:34

标签: c# jquery asp.net dotnetnuke-module dotnetnuke-7

我想为Add(即添加员工)功能创建动态表单。我可以创建所有控件(TextBox,RadioButtonList,CheckBoxList,DropDownList),但我不知道如何创建DateTime控件。 :(

DNN提供现成的控件(http://uxguide.dotnetnuke.com/UIPatterns/DatePicker.html),但我不知道如何在我的代码中动态创建它。

我也读过这个(http://www.ashishblog.com/assign-datepicker-to-runtimedynamic-textboxes-in-asp-net-using-jquery/),但它不起作用

有人可以建议我链接或实现它的方法吗?我可以使用DNNDateTime选择器更好。

这是我的代码: View.ascx

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="View.ascx.cs" Inherits="Customer.Modules.CustomerDemo.View" %>
<div id="div_customer" style="visibility: visible">
    <asp:PlaceHolder ID="mainPlaceHolder" runat="server"></asp:PlaceHolder>
</div>

View.ascx.cs - &gt;页面加载事件

foreach (FieldsDetails item in listOfFields)
{
    switch (item.FieldType)
    {
        case FieldTypes.Text:
            TextBox textControl = new TextBox();
            textControl.ID = "txt_" + item.FieldName;
            textControl.Text = item.FieldValue;
            textControl.TextChanged += TextControl_TextChanged; ;
            mainPlaceHolder.Controls.Add(textControl);
            break;
        case FieldTypes.DropDown:
            //code to create DropDown
            break;
        case FieldTypes.Checkbox:
            //code to create Checkbox
            break;
        case FieldTypes.DateTime:
            //code to create DateTime
            //create TextBox control and apply class or Is there readyname DNN Control?
            break;
    }
}

1 个答案:

答案 0 :(得分:0)

您需要在模块中包含DotnetNuke.Web和Telerik.Web.UI程序集。

DnnDateTimePicker是Telerik RadDateTimePicker的包装器。因此,您找到的任何文档都适用

var dtPicker1 = new DotNetNuke.Web.UI.WebControls.DnnDateTimePicker();
dtPicker1.ID = "dnnDatePicker1";
dtPicker1.Width = 300;
dtPicker1.Calendar.RangeMinDate = System.DateTime.Today;
dtPicker1.DateInput.EmptyMessage = "Select Date";
mainPlaceHolder.Controls.Add(dtPicker1);