在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,不能再次点击。 } } } }