在gridview中添加一列按钮列 点击按钮后更改本行状态列的值更新数据库中的值。 如状态列为“侯诊”点击按钮后变为“已诊”并将数据库中状态列的值由“0”变为“1”。如何编写代码?本人刚接触.NET,代码越详细越好。

解决方案 »

  1.   

    在模板中添加按钮,数据绑定的时候给按钮绑定事件,在点击按钮的时候根据id,sql更新数据库,然后从新绑定
      

  2.   

    前台代码<td>
                                            <asp:LinkButton runat="server" ID="btnstate" CommandName="setstate">
                                           <%# Eval("sh").ToString() == "1" ? "<font color='#000'>已审核</font>" : "<img src=\"../images/wlx.gif\"  style=\"border: 0px;\"/>"%>
                                            </asp:LinkButton>
                                        </td>
      protected void rptDate_ItemCommand(object source, RepeaterCommandEventArgs e)
            {
                
                Label lblhid = (Label)e.Item.FindControl("lblhid");
                if (e.CommandName == "setstate")
                {
                    System.Text.StringBuilder txtsql = new System.Text.StringBuilder("");
                    txtsql.Append("update getmoney set sh='1' where id="+lblhid.Text.ToString().Trim().Replace("'",""));
                    dosql cmd = new dosql();
                    if (cmd.updatadb(txtsql.ToString()))//修改数据库信息成功
                    {
                        showdate();
                    }
                }
            }        protected void rptDate_ItemCreated(object sender, RepeaterItemEventArgs e)
            {
                LinkButton btnstate = (LinkButton)e.Item.FindControl("btnstate");
                btnstate.Attributes.Add("onclick", "return confirm('是否确定已审核?');");
            }        protected void rptDate_ItemDataBound(object sender, RepeaterItemEventArgs e)
            {
                if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
                {
                    Label lblhid = (Label)e.Item.FindControl("lblhid");
                    lblhid.Text = Convert.ToString(DataBinder.Eval(e.Item.DataItem, "id"));
                }
            }后台代码
    我用的repeat 你试试可以不
      

  3.   

      protected void rptDate_ItemDataBound(object sender, RepeaterItemEventArgs e)
            {
                if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
                {
                    Label lblhid = (Label)e.Item.FindControl("lblhid");
                    lblhid.Text = Convert.ToString(DataBinder.Eval(e.Item.DataItem, "id"));
                }
            }
    给按钮添加一个事件
      

  4.   


    protected void gridStandard_RowCommand(object sender, GridViewCommandEventArgs e)
            {
                if (e.CommandName == "Updates")
                {
    //执行数据库操作 更改状态
    //
    }<asp:TemplateField HeaderText="操作">
                                    <asp:Button ID="btnUpdate" runat="server" Text="确认诊断" OnClientClick='<%#"Update(" + Eval("ID") + ")"%>'
                                        CssClass="btn" CommandName="Updates"/>
                                </ItemTemplate>
                            </asp:TemplateField>
    <asp:TemplateField HeaderText="状态">
                                   <asp:label runat="server" text='<%#Eval("State").ToString()=="1"?"已诊":"候诊"%>'></asp:label>
                                </ItemTemplate>
                            </asp:TemplateField> 
      

  5.   

    插入的时候判断if(...findcontrol("") as button).Text="侯诊"
    {
    update....
    }
    else
    {
    update
    }