在gridview的RowCommand事件中获取控件:
<asp:GridView ID="tab1_gridview1" runat="server" AutoGenerateColumns="false" OnRowDataBound="tab1_gridview1_RowDataBound" OnRowCommand="tab1_gridview1_RowCommand">
<Columns>
<asp:BoundField HeaderText="订单号" DataField="OrId"/>
<asp:BoundField HeaderText="产品名称" DataField="GoodName"/>
<asp:BoundField HeaderText="单价" DataField="GoodPrice"/>
<asp:BoundField HeaderText="数量" DataField="OrdNum"/>
<asp:BoundField HeaderText="快递费" DataField="Postage"/>
<asp:TemplateField HeaderText="商品总价(含快递)">
<ItemTemplate>
<asp:Label ID="lblMoney" runat="server" Text='<%# Convert.ToInt32(Eval("GoodPrice"))*Convert.ToInt32(Eval("OrdNum"))+Convert.ToInt32(Eval("Postage")) %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="交易状态">
<ItemTemplate>
<%--<center> <%# Eval("PayState")%></center>
<br />--%>
<asp:LinkButton ID="linkbtnState" runat="server" Text="取消订单" style="text-decoration:none;font-weight:bold;" CommandArgument='<%# Eval("PayState") %>' CommandName="linkbtnStateT"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
<%--<asp:BoundField HeaderText="交易状态" DataField="PayState"/>--%>
</Columns>
</asp:GridView>
后台代码:
protected void tab1_gridview1_RowCommand(object sender, GridViewCommandEventArgs e)
{
string r = e.CommandArgument.ToString();
GridViewRow gvrow = (GridViewRow)(((LinkButton)e.CommandSource).NamingContainer);
// 获取到行索引 RowIndex
int index = gvrow.RowIndex;
string Orid =tab1_gridview1.Rows[index].Cells[0].Text.ToString(); //此处是order编号
if (e.CommandName=="linkbtnStateT")
{
//string sql = "update from goodorder set PayState = 1 where OrId='"+Orid+"'";
OKBBSForumBLL.GoodOrder bll = new OKBBSForumBLL.GoodOrder();
OKBBSForumModel.GoodOrder model = new OKBBSForumModel.GoodOrder();
model.PayState = 1;
model.OrId = Orid;
bool b = bll.Update(model);
LinkButton l = ((LinkButton)e.CommandSource) as LinkButton; //找到linkbutton控件。
l.Enabled = false; //使其为flase,不能再次点击。
if (b==true)
{
l.Text="--------"
}
}
}
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
//获取控件值(得转换成相应的控件类型)
LinkButton lBtn = e.Row.Cells[9].FindControl("lkBtnCancel") as LinkButton;
if (lBtn != null)
{
if (lBtn.Text.Trim().Equals("已取消"))
{
lBtn.Style.Add(HtmlTextWriterStyle.Color, "Red");
lBtn.OnClientClick = "alert('订单已经取消了,不能进行恢复!');";
lBtn.Enabled = false; //使其为flase,不能再次点击。
}
}
}
}