GridView如何更新批量数据和单条记录(downmoon)?
2007-12-14 13:44
357 查看
后台代码段
Members
#region
Members
protected
GridView GVList;
public
string
PreUrl
=
Agronet.Common.Framework.Util.Globals.MemberUserPath
+
"
Product
"
+
@"
/
"
;
protected
Agronet.Common.Framework.Util.Pager pager;
protected
TextBox txtSearchTxt;
protected
Button btnSearch;
protected
HyperLink cmdAdd;
protected
LinkButton cmdDel;
protected
LinkButton cmdRecommend;
protected
LinkButton cmdUnPublish;
protected
TextBox txtWords;
protected
DropDownList ddlType;
protected
Label TradeTypeID;
protected
Label NoResult;
private
int
_page
=
1
;
public
int
_sort
=
0
;
/**/
///
<summary>
///
关键字
///
downmoon 2007年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(EventArgs e)
...
{
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, EventArgs e)
...
{
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, EventArgs e)
...
{
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, EventArgs e)
...
{
执行批量操作
#region
执行批量操作
UpdateMultiRecordsByWhere(pager.PageSize,
-
4
,
1
);
#endregion
}
private
void
cmdUnPublish_Click(
object
sender, EventArgs e)
...
{
执行批量操作
#region
执行批量操作
UpdateMultiRecordsByWhere(pager.PageSize,
-
2
,
1
);
#endregion
;
}
private
void
GVList_RowCommand(
object
sender, GridViewCommandEventArgs e)
...
{
执行批量操作
#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);
//
GridView a = (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
(Exception ex)
...
{
return
;
}
}
#endregion
}
private
void
GVList_RowUpdating(
object
sender, GridViewUpdateEventArgs e)
...
{
//
BindList();
}
private
void
cmdRecommend_Click(
object
sender, EventArgs e)
...
{
执行批量操作
#region
执行批量操作
UpdateMultiRecordsByWhere(pager.PageSize,
1
,
2
);
#endregion
}
protected
void
GVList_RowDataBound(
object
sender, GridViewRowEventArgs e)
...
{
if
(e.Row.RowType
==
DataControlRowType.DataRow)
...
{
HyperLink cmdMod
=
(HyperLink)e.Row.FindControl(
"
cmdMod
"
);
if
(cmdMod
!=
null
)
...
{ cmdMod.NavigateUrl
=
PreUrl
+
"
Modify.aspx?dvid=2&PKID=
"
+
DataBinder.Eval(e.Row.DataItem,
"
P_ID
"
); }
LinkButton lbUpdate
=
(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.ProductCollection sc
=
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
=
"
无符合条件的记录!
"
;
}
}
Multiple Record Update Method
#region
Multiple Record Update Method
private
void
UpdateMultiRecordsByWhere(
int
mCount,
short
mState,
short
updateType)
...
{
Check
#region
Check
CheckSiteUser();
#endregion
执行批量操作
#region
执行批量操作
try
...
{
StringBuilder sb
=
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
++
)
...
{
CheckBox chk
=
(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
(Exception ex)
...
{
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-dd HH: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
="return confirm('您确认快速更新该记录吗?');"
/>
</
ItemTemplate
>
</
asp:TemplateField
>
<
asp:TemplateField
>
<
HeaderStyle
Width
="40px"
/>
<
HeaderTemplate
>
<
input
type
="checkbox"
name
="allbox"
value
="Check All"
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:return confirm('确定推荐或(取消推荐)已选择的数据吗?')"
></
asp:LinkButton
>
<
asp:LinkButton
ID
="cmdUnPublish"
runat
="server"
CssClass
="ElementNavigation"
Text
="取消发布"
CommandName
="UnPublish"
CausesValidation
="false"
OnClientClick
="javascript:return confirm('确定取消发布已选择的数据吗?')"
></
asp:LinkButton
>
<
asp:LinkButton
ID
="cmdDel"
ForeColor
="Red"
Text
="删除"
CssClass
="ElementNavigation"
CausesValidation
="false"
runat
="server"
CommandName
="Delete"
OnClientClick
="javascript:return confirm('确定删除已选择的数据吗?')"
/>
</
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, GridViewUpdateEventArgs e)
...
{
//
BindList();
}
否则会提示“未处理的RowUpdating事件”
Members
#region
Members
protected
GridView GVList;
public
string
PreUrl
=
Agronet.Common.Framework.Util.Globals.MemberUserPath
+
"
Product
"
+
@"
/
"
;
protected
Agronet.Common.Framework.Util.Pager pager;
protected
TextBox txtSearchTxt;
protected
Button btnSearch;
protected
HyperLink cmdAdd;
protected
LinkButton cmdDel;
protected
LinkButton cmdRecommend;
protected
LinkButton cmdUnPublish;
protected
TextBox txtWords;
protected
DropDownList ddlType;
protected
Label TradeTypeID;
protected
Label NoResult;
private
int
_page
=
1
;
public
int
_sort
=
0
;
/**/
///
<summary>
///
关键字
///
downmoon 2007年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(EventArgs e)
...
{
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, EventArgs e)
...
{
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, EventArgs e)
...
{
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, EventArgs e)
...
{
执行批量操作
#region
执行批量操作
UpdateMultiRecordsByWhere(pager.PageSize,
-
4
,
1
);
#endregion
}
private
void
cmdUnPublish_Click(
object
sender, EventArgs e)
...
{
执行批量操作
#region
执行批量操作
UpdateMultiRecordsByWhere(pager.PageSize,
-
2
,
1
);
#endregion
;
}
private
void
GVList_RowCommand(
object
sender, GridViewCommandEventArgs e)
...
{
执行批量操作
#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);
//
GridView a = (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
(Exception ex)
...
{
return
;
}
}
#endregion
}
private
void
GVList_RowUpdating(
object
sender, GridViewUpdateEventArgs e)
...
{
//
BindList();
}
private
void
cmdRecommend_Click(
object
sender, EventArgs e)
...
{
执行批量操作
#region
执行批量操作
UpdateMultiRecordsByWhere(pager.PageSize,
1
,
2
);
#endregion
}
protected
void
GVList_RowDataBound(
object
sender, GridViewRowEventArgs e)
...
{
if
(e.Row.RowType
==
DataControlRowType.DataRow)
...
{
HyperLink cmdMod
=
(HyperLink)e.Row.FindControl(
"
cmdMod
"
);
if
(cmdMod
!=
null
)
...
{ cmdMod.NavigateUrl
=
PreUrl
+
"
Modify.aspx?dvid=2&PKID=
"
+
DataBinder.Eval(e.Row.DataItem,
"
P_ID
"
); }
LinkButton lbUpdate
=
(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.ProductCollection sc
=
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
=
"
无符合条件的记录!
"
;
}
}
Multiple Record Update Method
#region
Multiple Record Update Method
private
void
UpdateMultiRecordsByWhere(
int
mCount,
short
mState,
short
updateType)
...
{
Check
#region
Check
CheckSiteUser();
#endregion
执行批量操作
#region
执行批量操作
try
...
{
StringBuilder sb
=
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
++
)
...
{
CheckBox chk
=
(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
(Exception ex)
...
{
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-dd HH: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
="return confirm('您确认快速更新该记录吗?');"
/>
</
ItemTemplate
>
</
asp:TemplateField
>
<
asp:TemplateField
>
<
HeaderStyle
Width
="40px"
/>
<
HeaderTemplate
>
<
input
type
="checkbox"
name
="allbox"
value
="Check All"
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:return confirm('确定推荐或(取消推荐)已选择的数据吗?')"
></
asp:LinkButton
>
<
asp:LinkButton
ID
="cmdUnPublish"
runat
="server"
CssClass
="ElementNavigation"
Text
="取消发布"
CommandName
="UnPublish"
CausesValidation
="false"
OnClientClick
="javascript:return confirm('确定取消发布已选择的数据吗?')"
></
asp:LinkButton
>
<
asp:LinkButton
ID
="cmdDel"
ForeColor
="Red"
Text
="删除"
CssClass
="ElementNavigation"
CausesValidation
="false"
runat
="server"
CommandName
="Delete"
OnClientClick
="javascript:return confirm('确定删除已选择的数据吗?')"
/>
</
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, GridViewUpdateEventArgs e)
...
{
//
BindList();
}
否则会提示“未处理的RowUpdating事件”
相关文章推荐
- GridView如何更新批量数据和单条记录(downmoon)
- GridView如何更新批量数据和单条记录?
- 如何在GridView中一次性批量更新多行数据
- 如何在GridView中一次性批量更新多行数据
- 如何在GridView中一次性批量更新多行数据
- PHP如何批量更新MYSQL中的数据
- PHP中批量更新数据表中多条记录
- .NET GridView删除某一行,只去除GridView中的记录,不更新数据库
- 在GridView中如何格式化Money型字段(downmoon)?
- MSSQL中如何用SQL清除所有表的数据(downmoon)
- 批量更新具有数千属性列的数据表的记录信息(SQL Server 2005)
- MSSQL中如何用SQL清除所有表的数据(downmoon)?
- MSSQL中如何用SQL清除所有表的数据(downmoon)?
- 在ASP.NET 2.0中操作数据之六十二:GridView批量更新数据
- 如何把批量数据导入到android 的 sqlite 数据库(更新中)
- mybaits如何批量更新数据库
- 如何批量更新两个相关表的数据???
- 如何用一个表的数据批量更新另一个表格中的同属性数据
- MSSQL中如何用SQL清除所有表的数据(downmoon)?
- PHP中批量更新数据表中多条记录