C#获取SelectedDate.Day String值并将其绑定到gridview

时间:2015-10-16 01:47:44

标签: c# asp.net gridview calendar

enter image description here

我在aspx应用程序上运行此日历日期

            <div>
                <asp:Calendar runat="server" ID="calendar" SelectionMode="Day" OnSelectionChanged="DateChanged" ondayrender="DateRange"></asp:Calendar>
            </div>

            <div style="text-align: center; margin-top: 30px; display: inline-block;">
                <asp:GridView ID="calendarsubjects" CssClass="myGridStyle" runat="server">
                </asp:GridView>
            </div>

及其背后的代码:

 protected void DateChanged(object sender, EventArgs e)
    {
        calendarsubjects.DataSource = calendar.SelectedDate.Day.ToString();
        calendarsubjects.DataBind();    
    }

在我的代码中: 日历仅获取所选日期的编号。是否有可能只获得当天的字符串值。就像我点击特定号码8时一样,它会显示所选日期的Wed字符串。

3 个答案:

答案 0 :(得分:1)

SelectedDate是一个DateTime。从那里开始。

DateTime具有可能有用的DayOfWeok属性。 str_interp您也可以使用格式字符串为一周中的某一天执行ToString方法,因为您希望它呈现

SelectedDate.ToString("ddd")

https://msdn.microsoft.com/en-us/library/system.datetime.dayofweek(v=vs.110).aspx

这是指向格式指南的链接。

答案 1 :(得分:1)

是的,您只能获得日期的一天(字符串)部分。 只需使用适当的字符串格式表达式。

calendar.SelectedDate.Day.ToString("ddd");

请查看以下页面,了解更多格式表达式: https://msdn.microsoft.com/en-us/library/8kb3ddd4(v=vs.110).aspx

答案 2 :(得分:1)

我确信当您尝试

时会出现错误
calendarsubjects.DataSource = calendar.SelectedDate.Day.ToString();
calendarsubjects.DataBind(); 

因为calendarsubjectsGridView而GridView是在那里获取List,IEnumerable或Array中的值。

更好的是你应该删除Grid的代码并将值直接分配给div这样的

<div>
    <asp:Calendar runat="server"
                  ID="calendar"
                  SelectionMode="Day"
                  OnSelectionChanged="DateChanged"
                  ondayrender="DateRange"></asp:Calendar>
</div>
<div style="text-align: center; margin-top: 30px; display: inline-block;" ID="calendarsubjects"></div>

背后的代码

protected void DateChanged(object sender, EventArgs e)
{
    calendarsubjects.InnerHtml = calendar.SelectedDate.ToString("ddd");
}

希望这会做你想要的。