后台代码段

Members
#region
Members
protected
GridViewGVList;
public
string
PreUrl
=
Agronet.Common.Framework.Util.Globals.MemberUserPath
+
"
Product
"
+
@"
/
"
;

protected
Agronet.Common.Framework.Util.Pagerpager;
protected
TextBoxtxtSearchTxt;
protected
ButtonbtnSearch;
protected
HyperLinkcmdAdd;
protected
LinkButtoncmdDel;
protected
LinkButtoncmdRecommend;
protected
LinkButtoncmdUnPublish;
protected
TextBoxtxtWords;
protected
DropDownListddlType;
protected
LabelTradeTypeID;
protected
LabelNoResult;
private
int
_page
=
1
;
public
int
_sort
=
0
;

/**/
///
<summary>
///
关键字
///
downmoon2007年12月12日
///
</summary>
private
string
_word

...
{
get

...
{
object
o
=
ViewState[
"
strWords
"
];
return
(o
==
null
)
?
""
:o.ToString();
}
set

...
{
ViewState[
"
strWords
"
]
=
value;
}
}

//
审核状态
public
short
CheckState

...
{
get

...
{
object
o
=
ViewState[
"
CheckState
"
];
return
SQLParser.ShortParse(o);
}

set
...
{ViewState[
"
CheckState
"
]
=
value;}
}
#endregion

Events
#region
Events

protected
override
void
OnLoad(EventArgse)

...
{
base
.OnLoad(e);

Check
#region
Check
CheckSiteUser();
#endregion


initPage
#region
initPage
_page
=
SQLParser.IntParse(Page.Request.QueryString[
"
page
"
]);
_word
=
SQLParser.StringParse(Page.Request.QueryString[
"
word
"
]);
CheckState
=
SQLParser.ShortParse(Page.Request.QueryString[
"
st
"
]);

if
(txtSearchTxt
!=
null
)

...
{
txtSearchTxt.Attributes.Add(
"
maxlength
"
,
"
20
"
);
txtSearchTxt.Text
=
_word;
}
if
(
this
.ddlType
!=
null
)

...
{
this
.ddlType.SelectedValue
=
this
.CheckState.ToString();
this
.ddlType.SelectedIndexChanged
+=
new
EventHandler(ddlType_SelectedIndexChanged);

}

if
(cmdAdd
!=
null
)
...
{cmdAdd.NavigateUrl
=
PreUrl
+
"
Insert.aspx
"
;}

if
(cmdDel
!=
null
)
...
{cmdDel.Click
+=
new
EventHandler(cmdDel_Click);}

if
(cmdRecommend
!=
null
)
...
{cmdRecommend.Click
+=
new
EventHandler(cmdRecommend_Click);}

if
(cmdUnPublish
!=
null
)
...
{cmdUnPublish.Click
+=
new
EventHandler(cmdUnPublish_Click);}
pager.PageIndex
=
_page;
pager.PageSize
=
Agronet.Common.Framework.Util.Globals.PageSize;
if
(GVList
!=
null
)

...
{
GVList.RowDataBound
+=
new
GridViewRowEventHandler(GVList_RowDataBound);
GVList.RowCommand
+=
new
GridViewCommandEventHandler(GVList_RowCommand);
GVList.RowUpdating
+=
new
GridViewUpdateEventHandler(GVList_RowUpdating);
}

if
(NoResult
!=
null
)
...
{NoResult.Text
=
GetCurStateByID(CheckState)
+
"
列表
"
;}

if
(btnSearch
!=
null
)
...
{btnSearch.Click
+=
new
EventHandler(btnSearch_Click);}

#endregion

BindList
#region
BindList
if
(
!
IsPostBack)

...
{
BindList();
}
pager.UrlFormat
=
PreUrl
+
"
?page={0}&sort=0&dvid=2&word=
"
+
_word
+
"
&st=
"
+
CheckState.ToString();
#endregion
}

Serarch
#region
Serarch
private
void
btnSearch_Click(
object
sender,EventArgse)

...
{
string
strurl
=
PreUrl
+
"
?dvid=2&sort=0&st={0}&word={1}
"
;
this
.CheckState
=
SQLParser.ShortParse(
this
.ddlType.SelectedItem.Value);
strurl
=
string
.Format(strurl,CheckState.ToString(),txtSearchTxt.Text.Trim());
PageLocation(strurl);
}
#endregion

ddlType
#region
ddlType
private
void
ddlType_SelectedIndexChanged(
object
sender,EventArgse)

...
{
if
(
this
.ddlType
!=
null
&&
ddlType.SelectedValue.Trim()
!=
""
)

...
{
this
.CheckState
=
SQLParser.ShortParse(
this
.ddlType.SelectedItem.Value);
string
strurl
=
PreUrl
+
"
?dvid=2&page=1&st=
"
+
CheckState.ToString()
+
"
&word=
"
+
this
.txtSearchTxt.Text.Trim();;
PageLocation(strurl);
}
}
#endregion
protected
void
cmdDel_Click(
object
sender,EventArgse)

...
{

执行批量操作
#region
执行批量操作
UpdateMultiRecordsByWhere(pager.PageSize,
-
4
,
1
);
#endregion
}
private
void
cmdUnPublish_Click(
object
sender,EventArgse)

...
{

执行批量操作
#region
执行批量操作
UpdateMultiRecordsByWhere(pager.PageSize,
-
2
,
1
);
#endregion
;
}
private
void
GVList_RowCommand(
object
sender,GridViewCommandEventArgse)

...
{

执行批量操作
#region
执行批量操作
if
(e.CommandName
==
"
Update
"
)

...
{
try

...
{
int
days
=
0
;

if
(muser.ClientClass
>
0
)
...
{days
=
Globals.ProductinfoUpdatePerDays;}
long
pid
=
SQLParser.LongParse(GVList.DataKeys[SQLParser.IntParse(e.CommandArgument)].Value);
//
GridViewa=(GridView)sender;
if
(pid
>
0
)

...
{
int
retValue
=
Agronet.Product.Framework.Data.DataDTOProvider.ProducyUpdateModifyTime(pid,days,muser.LoginID);
switch
(retValue)

...
{
case
-
1
:
Debug(
"
产品更新失败,原因:产品未通过审核!
"
,
"
Error
"
);
break
;
case
0
:
Debug(
"
产品更新失败,原因:未知!
"
,
"
Error
"
);
break
;
case
1
:

Index
#region
Index
Debug(
"
产品更新成功!
"
,
"
Succeed
"
);
#endregion
break
;
case
2
:
Debug(
"
尊敬用户
"
+
user.LoginID
+
@"
您好, 您选择的产品暂时还不能被更新,原因:单位时间内更新过与频繁,二十分钟之内不能连续更新!
"
,
"
Error
"
);
break
;
default
:
break
;
}
}
}
catch
(Exceptionex)

...
{
return
;
}
}
#endregion
}
private
void
GVList_RowUpdating(
object
sender,GridViewUpdateEventArgse)

...
{
//
BindList();
}
private
void
cmdRecommend_Click(
object
sender,EventArgse)

...
{

执行批量操作
#region
执行批量操作
UpdateMultiRecordsByWhere(pager.PageSize,
1
,
2
);
#endregion

}
protected
void
GVList_RowDataBound(
object
sender,GridViewRowEventArgse)

...
{
if
(e.Row.RowType
==
DataControlRowType.DataRow)

...
{
HyperLinkcmdMod
=
(HyperLink)e.Row.FindControl(
"
cmdMod
"
);

if
(cmdMod
!=
null
)
...
{cmdMod.NavigateUrl
=
PreUrl
+
"
Modify.aspx?dvid=2&PKID=
"
+
DataBinder.Eval(e.Row.DataItem,
"
P_ID
"
);}
LinkButtonlbUpdate
=
(LinkButton)e.Row.FindControl(
"
cmdUpdate
"
);

if
(lbUpdate
!=
null
)
...
{lbUpdate.CommandArgument
=
e.Row.RowIndex.ToString();}
}
}
#endregion

Methods
#region
Methods

BindList
#region
BindList

private
void
BindList()

...
{
string
strWhere
=
string
.Empty;
strWhere
=
"
(LoginID='
"
+
muser.LoginID
+
"
')
"
;
Agronet.Product.Framework.Components.ProductCollectionsc
=
Agronet.Product.Framework.Data.DataDTOProvider.GetProductReturnCollection(_word.Trim(),strWhere,pager.PageIndex,pager.PageSize,_sort,CheckState);
this
.GVList.DataSource
=
sc;
this
.GVList.DataBind();
if
(sc.MaxItems
>
0
)

...
{pager.ItemCount
=
sc.MaxItems;}
else

...
{
pager.Visible
=
false
;
this
.NoResult.Text
=
"
无符合条件的记录!
"
;
}

}

MultipleRecordUpdateMethod
#region
MultipleRecordUpdateMethod
private
void
UpdateMultiRecordsByWhere(
int
mCount,
short
mState,
short
updateType)

...
{

Check
#region
Check
CheckSiteUser();
#endregion

执行批量操作
#region
执行批量操作
try

...
{
StringBuildersb
=
new
StringBuilder();
string
strTemp
=
string
.Empty;
string
PKName
=
string
.Empty;
int
tempCount
=
0
;

if
(GVList
==
null
||
GVList.Rows.Count
==
0
)
...
{
return
;}
PKName
=
GVList.DataKeyNames[
0
].ToString();
sb.Append(
"
where
"
);
sb.Append(
"
LoginID='
"
);
sb.Append(muser.LoginID);
sb.Append(
"
'AND
"
);
sb.Append(PKName);
sb.Append(
"
in(
"
);
for
(
int
i
=
0
;i
<
GVList.Rows.Count;i
++
)

...
{
CheckBoxchk
=
(CheckBox)GVList.Rows[i].FindControl(
"
chkDelServer
"
);
if
(chk
!=
null
&&
chk.Checked)

...
{
sb.Append(GVList.DataKeys[i].Value.ToString());
sb.Append(
"
,
"
);
tempCount
++
;
}
}
if
(tempCount
==
0
)
return
;

if
(tempCount
>
mCount)
...
{Debug(
"
超出批量操作的最大允许数量!
"
,
this
.ClientID,
true
);
return
;}
strTemp
=
sb.ToString();

if
(strTemp.EndsWith(
"
,
"
))
...
{strTemp
=
strTemp.Remove(strTemp.Length
-
1
);}
strTemp
+=
"
)
"
;
if
(updateType
==
1
)

...
{
Agronet.Product.Framework.Data.DataDTOProvider.ProductUpdateStatusByWhere(strTemp,mState,muser.LoginID);
}
else

...
{
Agronet.Product.Framework.Data.DataDTOProvider.ProductUpdateRecommendStatusByWhere(strTemp,mState,muser.LoginID);
}
BindList();
}
catch
(Exceptionex)

...
{
Debug(ex.Message,
this
.ClientID,
true
);
return
;
}
#endregion
}

#endregion
#endregion
#endregion
前台html

<
script
language
="JavaScript"
>
...

<!--
function
CheckAll(val)

...
{
for
(
var
i
=
0
;i
<
document.forms[
0
].elements.length;i
++
)

...
{
var
e
=
document.forms[
0
].elements[i];
if
(e.Type
=
"
checkbox
"
&&
e.name
!=
"
_ctl2:_ctl0:radioSortDesc
"
)

...
{
e.checked
=
val;
}
}
}
//
-->
</
script
>
<
table
width
="95%"
border
="0"
cellpadding
="0"
cellspacing
="0"
align
="center"
>
<
tr
>
<
td
height
="25"
align
="right"
bgcolor
="#EFEFEF"
class
="tab_font_right"
>
<
strong
>
产品搜索
</
strong
>
:
<
asp:TextBox
ID
="txtSearchTxt"
runat
="server"
/>
<
asp:Button
ID
="btnSearch"
runat
="server"
Text
="搜索"
></
asp:Button
>
转到
<
asp:DropDownList
ID
="ddlType"
runat
="server"
CssClass
="maintext"
AutoPostBack
="True"
>
<
asp:ListItem
Value
="10000"
>
所有产品
</
asp:ListItem
>
<
asp:ListItem
Value
="2"
>
已推荐
</
asp:ListItem
>
<
asp:ListItem
Value
="1"
>
当前发布
</
asp:ListItem
>
<
asp:ListItem
Value
="0"
>
等待审核
</
asp:ListItem
>
<
asp:ListItem
Value
="-1"
>
未通过审核
</
asp:ListItem
>
<
asp:ListItem
Value
="-2"
>
未发布
</
asp:ListItem
>
</
asp:DropDownList
>
</
td
>
</
tr
>
</
table
>
<
table
width
="95%"
border
="0"
align
="center"
cellpadding
="0"
cellspacing
="1"
>
<
tr
>
<
td
>
<
asp:GridView
ID
="GVList"
runat
="server"
ShowFooter
="true"
AutoGenerateColumns
="False"
BorderStyle
="Solid"
BorderColor
="#ffffff"
GridLines
="Horizontal"
CellSpacing
="1"
Width
="100%"
HorizontalAlign
="NotSet"
BorderWidth
="0px"
EnableViewState
="true"
DataKeyNames
="P_ID"
>
<
HeaderStyle
CssClass
="InfoHeaderText"
ForeColor
="#000000"
HorizontalAlign
="center"
Height
="22px"
/>
<
AlternatingRowStyle
BackColor
="#f7f7f7"
/>
<
RowStyle
HorizontalAlign
="center"
Height
="20px"
BackColor
="#E3EAEB"
/>
<
SelectedRowStyle
BackColor
="#C5BBAF"
Font-Bold
="True"
ForeColor
="#333333"
/>
<
Columns
>
<
asp:TemplateField
>
<
HeaderStyle
Width
="60px"
BackColor
="#1C5E55"
ForeColor
="White"
/>
<
HeaderTemplate
>
编号
</
HeaderTemplate
>
<
ItemTemplate
>
<
asp:Label
ID
="PKID"
Text
='<%#
DataBinder.Eval(Container.DataItem,"P_ID")%
>
'runat="server"/>
</
ItemTemplate
>
</
asp:TemplateField
>
<
asp:TemplateField
Visible
="False"
>
<
HeaderTemplate
>
<
asp:Label
ID
="Image_Head"
runat
="server"
Text
="产品图片"
/>
</
HeaderTemplate
>
<
HeaderStyle
Width
="120"
/>
<
ItemTemplate
>
<
asp:HyperLink
ID
="P_SmallImage"
runat
="server"
/>
</
ItemTemplate
>
</
asp:TemplateField
>
<
asp:TemplateField
>
<
HeaderTemplate
>
产品名称
</
HeaderTemplate
>
<
ItemStyle
HorizontalAlign
="left"
/>
<
HeaderStyle
HorizontalAlign
="Left"
/>
<
ItemTemplate
>
·
<
asp:Label
ID
="P_Name"
Text
='<%#
DataBinder.Eval(Container.DataItem,"P_Name")%
>
'
runat="Server"/>
<
img
src
='<%#
"/Resource/images/Check"+DataBinder.Eval(Container,"DataItem.CurState")+".gif"%
>
'/>
</
ItemTemplate
>
</
asp:TemplateField
>
<
asp:BoundField
DataField
="ModTime"
HeaderText
="修改时间"
DataFormatString
="{0:yyyy-MM-ddHH:mm}"
HtmlEncode
="false"
/>
<
asp:BoundField
DataField
="ModUser"
HeaderText
="修改者"
/>
<
asp:TemplateField
>
<
HeaderTemplate
>
状态
</
HeaderTemplate
>
<
ItemTemplate
>
<
asp:Label
ID
="CurState"
Text
='<%#
GetCurStateByID(DataBinder.Eval(Container.DataItem,"CurState"))%
>
'
runat="Server"/>
</
ItemTemplate
>
</
asp:TemplateField
>
<
asp:TemplateField
>
<
HeaderStyle
Width
="60px"
/>
<
HeaderTemplate
>
编辑
</
HeaderTemplate
>
<
ItemTemplate
>
<
asp:HyperLink
ID
="cmdMod"
CssClass
="ElementNavigation"
Text
="编辑"
runat
="server"
/>
</
ItemTemplate
>
</
asp:TemplateField
>
<
asp:TemplateField
>
<
HeaderStyle
Width
="60px"
/>
<
HeaderTemplate
>
更新
</
HeaderTemplate
>
<
ItemTemplate
>
<
asp:LinkButton
ID
="cmdUpdate"
CommandName
="Update"
CssClass
="ElementNavigation"
Text
="快速更新"
runat
="server"
OnClientClick
="returnconfirm('您确认快速更新该记录吗?');"
/>
</
ItemTemplate
>
</
asp:TemplateField
>
<
asp:TemplateField
>
<
HeaderStyle
Width
="40px"
/>
<
HeaderTemplate
>
<
input
type
="checkbox"
name
="allbox"
value
="CheckAll"
onclick
="CheckAll(allbox.checked);"
/>
</
HeaderTemplate
>
<
ItemTemplate
>
<
asp:CheckBox
ID
="chkDelServer"
runat
="server"
/>
</
ItemTemplate
>
</
asp:TemplateField
>
</
Columns
>
</
asp:GridView
>
</
td
>
</
tr
>
<
tr
>
<
td
align
="right"
>
<
asp:HyperLink
ID
="cmdAdd"
ForeColor
="Red"
Text
="新增"
CssClass
="ElementNavigation"
runat
="server"
/>
<
asp:LinkButton
ID
="cmdRecommend"
runat
="server"
CssClass
="ElementNavigation"
Text
="推荐"
CommandName
="ReCommend"
CausesValidation
="false"
OnClientClick
="javascript:returnconfirm('确定推荐或(取消推荐)已选择的数据吗?')"
></
asp:LinkButton
>
<
asp:LinkButton
ID
="cmdUnPublish"
runat
="server"
CssClass
="ElementNavigation"
Text
="取消发布"
CommandName
="UnPublish"
CausesValidation
="false"
OnClientClick
="javascript:returnconfirm('确定取消发布已选择的数据吗?')"
></
asp:LinkButton
>
<
asp:LinkButton
ID
="cmdDel"
ForeColor
="Red"
Text
="删除"
CssClass
="ElementNavigation"
CausesValidation
="false"
runat
="server"
CommandName
="Delete"
OnClientClick
="javascript:returnconfirm('确定删除已选择的数据吗?')"
/>
</
td
>
</
tr
>
<
tr
>
<
td
>
<
Agronet:Pager
ID
="pager"
runat
="server"
CssClass
="Pager"
LinkFormatActive
='<a
href
="{0}"
class
="Current"
>
{1}
</
a
>
'
PrefixText="页码:"UseSpacer="False"/>
</
td
>
</
tr
>
</
table
>
值处注意的是:
必须添加这个事件,即使它什么也不干
private
void
GVList_RowUpdating(
object
sender,GridViewUpdateEventArgse)

...
{
//
BindList();
}
否则会提示“未处理的RowUpdating事件”