日历控件的使用(二)

日历控件的使用

页面效果图:

clip_image001

aspx代码:

clip_image002

(页面代码):

<asp:Content ContentPlaceHolderID="head" ID="idFormTitle" runat="server">

<link href="../../Statics/core/calendar/skin/WdatePicker.css" rel="stylesheet" type="text/css" />

<script src="../../Statics/core/calendar/WdatePicker.js" type="text/javascript"></script>

</asp:Content>

<asp:Content ID="idContent" ContentPlaceHolderID="Content" runat="Server">

<!--列表标题-->

<div class="page-title">

<div class="row-fluid">

<div class="span6 first">

<h2>

<span>待办信息列表</span></h2>

</div>

</div>

</div>

<!--查询区域-->

<div class="panel search-panel">

<div class="panel-content">

<web:SearchNoSAndR runat="server" GridViewId="SmartGridView1" ID="GridSearch">

<SearchConditionTemplate>

<table>

<tr>

<th style="width: 80px;">

创建时间:

</th>

<td>

<asp:TextBox runat="server" ID="CreateTime" CssClass="Wdate" onfocus="WdatePicker({lang:'zh-cn',dateFmt:'yyyy-MM-dd'})"></asp:TextBox>

</td>

<th style="width: 80px;">

发送人:

</th>

<td>

<asp:TextBox runat="server" ID="Name"></asp:TextBox>

</td>

<td rowspan="1" valign="middle">

<asp:Button ID="btnSearch" CssClass="btn" runat="server" Text="查询" OnClick="Search" />

<asp:Button ID="btnReset" CssClass="btn" runat="server" Text="重置" OnClick="Reset" />&nbsp;&nbsp;&nbsp;

</td>

</tr>

<tr>

<th style="width: 80px;">

接收人:

</th>

<td>

<asp:TextBox runat="server" ID="OwnerName"></asp:TextBox>

</td>

<th>

状态:

</th>

<td>

<asp:DropDownList runat="server" ID="DL_PortalStatus" DataSourceID="PortalStatus"

Name="Status" DataTextField="TEXT" DataValueField="VALUE">

</asp:DropDownList>

</td>

</tr>

</table>

</SearchConditionTemplate>

</web:SearchNoSAndR>

</div>

</div>

<!--列表区域-->

<div class="panel grid-panel" id="gridcontent" style="overflow-x: hidden; overflow-y: auto;">

<!--列表标题,操作-->

<div class="panel-head">

<div class="row-fluid">

<div class="span6 first">

<h2>

<span style="background-color: #fff"></span>

</h2>

</div>

<div class="span6">

<!--操作-->

<div class="pull-right">

<asp:LinkButton ID="LinkButton1" CssClass="btn" runat="server" OnClick="SendPortals"

OnClientClick="return confirm('您确认要推送该条待办吗?')">

<i class="icon-plus"></i>批量发送

</asp:LinkButton>

<asp:LinkButton ID="LinkButton2" CssClass="btn" runat="server" OnClick="RecoveryPortals"

OnClientClick="return confirm('您确认要回收该条待办吗?')">

<i class="icon-plus"></i>批量回收

</asp:LinkButton>

<asp:LinkButton ID="LinkButton3" CssClass="btn" runat="server" OnClick="DeletePortals"

OnClientClick="return confirm('您确认要删除该条待办吗?')">

<i class="icon-plus"></i>批量删除

</asp:LinkButton>

</div>

</div>

</div>

</div>

<!--列表内容-->

<div class="panel-content">

<!--列表控件-->

<web:SmartGridView runat="server" ID="SmartGridView1" AutoGenerateColumns="false"

Width="100%" DataKeyNames="Id" DataSourceID="SmartDataSource1" PageSize="9">

<Columns>

<asp:CheckBoxField DataField="Id" />

<asp:BoundField DataField="PortalID" HeaderText="待办ID" SortExpression="PortalID"

Visible="false" ItemStyle-HorizontalAlign="Center" />

<asp:BoundField DataField="LoginId" HeaderText="登录ID" SortExpression="LoginId" ItemStyle-HorizontalAlign="Center" />

<asp:BoundField DataField="Name" HeaderText="发送人姓名" SortExpression="Name" ItemStyle-HorizontalAlign="Center" />

<asp:BoundField DataField="OwnerName" HeaderText="接受人姓名" SortExpression="OwnerName"

ItemStyle-HorizontalAlign="Center" />

<asp:BoundField DataField="MsgTitle" HeaderText="待办标题" SortExpression="MsgTitle" />

<asp:BoundField DataField="CreateTime" HeaderText="创建时间" SortExpression="CreateTime"

ItemStyle-HorizontalAlign="Center" DataFormatString="{0:yyyy-MM-dd}" />

<asp:BoundField DataField="IssuedTime" HeaderText="发送时间" SortExpression="IssuedTime"

ItemStyle-HorizontalAlign="Center" DataFormatString="{0:yyyy-MM-dd}" />

<asp:BoundField DataField="URL" HeaderText="平台URI" SortExpression="URL" />

<asp:BoundField DataField="RecoveryTime" HeaderText="回收时间" SortExpression="RecoveryTime"

ItemStyle-HorizontalAlign="Center" DataFormatString="{0:yyyy-MM-dd}" />

<asp:BoundField DataField="PortalStatus" HeaderText="状态" SortExpression="PortalStatus"

ItemStyle-HorizontalAlign="Center" />

<asp:TemplateField HeaderText="操作" ItemStyle-Width="80px">

<ItemStyle HorizontalAlign="Center" Wrap="false" />

<HeaderStyle Wrap="false" HorizontalAlign="Center" />

<ItemTemplate>

<table class="templete">

<tr>

<td>

<asp:ImageButton ID="ibEdit" runat="server" ToolTip="发送" Visible='<%# Eval("Status").ToString().Trim()=="0"? true:(Eval("Status").ToString().Trim()=="3"?true:false) %>'

_ID='<%#Eval("Id")%>' _PortalID='<%#Eval("PortalID")%>' ImageUrl="../../Statics/images/com/icon_tool_094.gif"

CausesValidation="False" OnClientClick="return confirm('您确认要发送该条待办吗?')" OnClick="SendPortal">

</asp:ImageButton>

</td>

<td>

<asp:ImageButton ID="ibLookUp" runat="server" ToolTip="回收" Visible='<%# Eval("Status").ToString().Trim()=="1"? true:false %>'

_ID='<%#Eval("Id")%>' _PortalID='<%#Eval("PortalID")%>' ImageUrl="../../Statics/images/com/icon_tool_138.gif"

CausesValidation="False" OnClientClick="return confirm('您确认要回收该条待办吗?')" OnClick="RecoveryPortal">

</asp:ImageButton>

</td>

<td>

<asp:ImageButton ID="ibDelete" runat="server" ToolTip="删除" Visible='<%# Eval("Status").ToString().Trim()=="0"? true:(Eval("Status").ToString().Trim()=="2"?true:(Eval("Status").ToString().Trim()=="3"?true:false))%>'

ImageUrl="~/Statics/images/com/dg_del.gif" _ID='<%#Eval("Id")%>' _PortalID='<%#Eval("PortalID")%>'

CausesValidation="False" OnClientClick="return confirm('您确认要删除该条待办吗?')" OnClick="DeletePortal">

</asp:ImageButton>

</td>

</tr>

</table>

</ItemTemplate>

</asp:TemplateField>

</Columns>

<CheckBoxSettings Enabled="True" Position="0" />

<PagerSettings />

<EditRowStyle HorizontalAlign="Center" />

</web:SmartGridView>

<web:SmartSqlDataSource runat="server" ID="SmartDataSource1" SelectCommand="MSG.PortalList.list"

SelectCountCommand="MSG.PortalList.list.count" DefaultSortExpression="PortalStatus DESC,CreateTime DESC"

SelectCommandAutoPageWrap="true">

</web:SmartSqlDataSource>

<web:SmartSqlDataSource runat="server" ID="PortalStatus" SelectCommand="MSG.PortalList.PortalStatus"

SelectCommandAutoPageWrap="false">

</web:SmartSqlDataSource>

</div>

</div>

<script type="text/javascript">

window.onload = function () {

if (document.parentWindow.frameElement == undefined) {

return;

}

var bodywidth = document.parentWindow.frameElement.clientHeight;

document.getElementById("gridcontent").style.height = bodywidth - document.getElementById("gridcontent").offsetTop;

};

$(window).resize(function () {

if (document.parentWindow.frameElement == undefined) {

return;

}

var bodywidth = document.parentWindow.frameElement.clientHeight;

document.getElementById("gridcontent").style.height = bodywidth - document.getElementById("gridcontent").offsetTop;

});

</script>

</asp:Content>

(后台代码):

public partial class PortalList : System.Web.UI.Page

{

private SYS_PortalService _PortalService = ObjectHelper.GetObject<SYS_PortalService>();

protected void Page_Load(object sender, EventArgs e)

{

}

protected void Search(object sender, EventArgs e)

{

this.GridSearch.Search();

}

protected void Reset(object sender, EventArgs e)

{

this.GridSearch.Reset();

}

protected void DeletePortal(object sender, EventArgs e)

{

ImageButton dp = sender as ImageButton;//是为了获取PortalID

string ID = dp.Attributes["_ID"];

int PortalID = Convert.ToInt32(dp.Attributes["_PortalID"]);

if (_PortalService.DeletePortal(ID, PortalID))

{

GridSearch.Search();

ScriptHelper.Alert(this.Page, "删除成功");

}

else

{

ScriptHelper.Alert(this.Page, "删除失败");

}

}

protected void DeletePortals(object sender, EventArgs e)

{

String[] Portals = SmartGridView1.GetCheckedValues();

if (Portals.Length > 0)

{

if (this._PortalService.DeletePortals(Portals))

{

this.GridSearch.Refresh();

ScriptHelper.Alert(this.Page, "删除成功");

}

else

{

ScriptHelper.Alert(this.Page, "删除失败");

}

}

else

{

ScriptHelper.Alert(this.Page, "请选择需要删除的待办");

}

}

protected void RecoveryPortal(object sender, EventArgs e)

{

ImageButton dp = sender as ImageButton;//是为了获取PortalID

string ID = dp.Attributes["_ID"];

int PortalID = Convert.ToInt32(dp.Attributes["_PortalID"]);

if (_PortalService.RecoveryPortal(ID, PortalID))

{

GridSearch.Search();

ScriptHelper.Alert(this.Page, "回收成功");

}

else

{

ScriptHelper.Alert(this.Page, "回收失败");

}

}

protected void RecoveryPortals(object sender, EventArgs e)

{

String[] Portals = SmartGridView1.GetCheckedValues();

if (Portals.Length > 0)

{

if (this._PortalService.RecoveryPortals(Portals))

{

this.GridSearch.Refresh();

ScriptHelper.Alert(this.Page, "回收成功");

}

else

{

ScriptHelper.Alert(this.Page, "回收失败");

}

}

else

{

ScriptHelper.Alert(this.Page, "请选择需要回收的待办");

}

}

protected void SendPortal(object sender, EventArgs e)

{

ImageButton dp = sender as ImageButton;//是为了获取PortalID

string ID = dp.Attributes["_ID"];

int PortalID = Convert.ToInt32(dp.Attributes["_PortalID"]);

if (_PortalService.SendPortal(ID, PortalID))

{

GridSearch.Search();

ScriptHelper.Alert(this.Page, "发送成功");

}

else

{

ScriptHelper.Alert(this.Page, "发送失败");

}

}

protected void SendPortals(object sender, EventArgs e)

{

String[] Portals = SmartGridView1.GetCheckedValues();

if (Portals.Length > 0)

{

if (this._PortalService.SendPortals(Portals))

{

this.GridSearch.Refresh();

ScriptHelper.Alert(this.Page, "发送成功");

}

else

{

ScriptHelper.Alert(this.Page, "发送失败");

}

}

else

{

ScriptHelper.Alert(this.Page, "请选择需要发送的待办");

}

}

}

(数据库脚本代码):

<command key="MSG.PortalList.list">

<![CDATA[

SELECT

ID AS Id

, PortalID

, LoginId

, AppName

, Name

, OwnerID

, OwnerName

, IssuedTime

, URL

, MsgTitle

, MsgType

, ActionType

, ParentOwner

, BusPrimarykey

, (CASE WHEN Status ='0' THEN '未发送' WHEN Status ='1' THEN '已发送' WHEN Status ='2' THEN '已回收' WHEN Status ='3' THEN '发送异常' WHEN Status ='4' THEN '已删除' ELSE '' END) AS PortalStatus

, Status --0:未发送 1:已发送 2:已回收 3:发送异常 4:已删除

, IsPortalSucess

, RecoveryTime

, CreateTime

FROM dbo.SYS_Portal

WHERE 1=1

{? AND Name LIKE '%'+#Name#+'%'} //注意通过日历控件选择的时间在SQL脚本中是这样通过年月日匹配的

{? AND YEAR(CreateTime) = YEAR(#CreateTime#)}

{? AND MONTH(CreateTime) = MONTH(#CreateTime#)}

{? AND DAY(CreateTime) = DAY(#CreateTime#)}

{? AND OwnerName LIKE '%'+#OwnerName#+'%'}

{? AND Status = #Status#}

        ]]>

</command>

<command key="MSG.PortalList.list.count">

<![CDATA[

SELECT COUNT(*)

FROM dbo.SYS_Portal

WHERE 1=1

{? AND Name LIKE '%'+#Name#+'%'}

{? AND YEAR(CreateTime) = YEAR(#CreateTime#)}

{? AND MONTH(CreateTime) = MONTH(#CreateTime#)}

{? AND DAY(CreateTime) = DAY(#CreateTime#)}

{? AND OwnerName LIKE '%'+#OwnerName#+'%'}

{? AND Status = #Status#}

        ]]>

</command>

<command key="MSG.PortalList.PortalStatus">

<![CDATA[

SELECT

'' AS VALUE

,'--请选择--' AS TEXT

UNION ALL

SELECT

'0' AS VALUE

,'未发送' AS TEXT

UNION ALL

SELECT

'1' AS VALUE

,'已发送' AS TEXT

UNION ALL

SELECT

'2' AS VALUE

,'已回收' AS TEXT

UNION ALL

SELECT

'3' AS VALUE

,'发送异常' AS TEXT

        ]]>

</command>

<command key="MSG.PortalList.DeletePortal">

<![CDATA[

UPDATE dbo.SYS_Portal

SET

Status = '4' --0:未发送 1:已发送 2:已回收 3:发送异常 4:已删除

WHERE ID = #ID#

{? AND PortalID =#PortalID#}

        ]]>

</command>

<command key="MSG.PortalList.RecoveryPortal">

<![CDATA[

UPDATE dbo.SYS_Portal

SET

Status = '2' --0:未发送 1:已发送 2:已回收 3:发送异常 4:已删除

WHERE ID = #ID#

{? AND PortalID =#PortalID#}

        ]]>

</command>

<command key="MSG.PortalList.SendPortal">

<![CDATA[

UPDATE dbo.SYS_Portal

SET

Status = '1' --0:未发送 1:已发送 2:已回收 3:发送异常 4:已删除

WHERE ID = #ID#

{? AND PortalID =#PortalID#}

        ]]>

</command>

(服务类中的方法):

private readonly Dao _dao = Dao.Get();

public bool DeletePortal(string ID, int PortalID)

{

try

{

TransactionOptions transactionOptions = new TransactionOptions();

transactionOptions.IsolationLevel = IsolationLevel.ReadCommitted;

transactionOptions.Timeout = new TimeSpan(0, 3, 0);

using (TransactionScope transactionScope = new TransactionScope(TransactionScopeOption.Required, transactionOptions))

{

var param = new Dictionary<string, object>() { { "ID", ID }, { "PortalID", PortalID } };

this._dao.ExecuteNonQuery("MSG.PortalList.DeletePortal", param);

transactionScope.Complete();

}

return true;

}

catch (Exception ex)

{

return false;

}

}

public bool DeletePortals(string[] PortalsId)

{

try

{

TransactionOptions transactionOptions = new TransactionOptions();

transactionOptions.IsolationLevel = IsolationLevel.ReadCommitted;

transactionOptions.Timeout = new TimeSpan(0, 3, 0);

using (TransactionScope transactionScope = new TransactionScope(TransactionScopeOption.Required, transactionOptions))

{

IDictionary<string, object> dictionary = new Dictionary<string, object>();

foreach (string ID in PortalsId)

{

dictionary["ID"] = ID;

this._dao.ExecuteNonQuery("MSG.PortalList.DeletePortal", dictionary);

}

transactionScope.Complete();

}

return true;

}

catch (Exception ex)

{

return false;

}

}

//表单中使用日历控件

clip_image003

clip_image004

注:EnableControl="(0.*)"该属性加上后保存postback回来后该控件变灰。

clip_image005

//web:search 中使用日历控件,并初始化查询当前日期的数据

if (!IsPostBack)

{

DatePicker txtCreateTime = (DatePicker)this.GridSearch.Controls[1].Controls[0].FindControl("tbCreateTime");

txtCreateTime.Text = DateTime.Now.ToString("yyyy-MM");

this.SmartDataSource1.SelectParameters.Add(new Parameter("CreateTime",System.Data.DbType.String,DateTime.Now.ToString("yyyy-MM")));

}

//含有年份、季度、月份的查询

clip_image006

clip_image007

clip_image008

clip_image009

posted @ 2014-01-21 10:58  weifb  阅读(265)  评论(0)    收藏  举报