C#中关于Gridview的一些属性(四、绑定)

(此图为网上图片,只做例子使用)

如上图的gridview,在这里,我先绑定了货币那一列,然后根据货币的id然后再动态填充每行数据

       首先在前台界面添加一个gridview,

<asp:GridView   ID="GridView1" runat="server"  OnRowDataBound="GridView1_RowDataBound" AutoGenerateColumns="false" BackColor="#cccccc" >
                <Columns>
                    <asp:BoundField DataField="id" HeaderText="id" SortExpression="id" Visible="false" />
                   <asp:BoundField DataField="TIMESPAN" HeaderText="货币" SortExpression="TIMESPAN" ItemStyle-Width="100px"   ItemStyle-HorizontalAlign ="Center" /><pre name="code" class="html">          <asp:TemplateField HeaderText="<span style="font-family: Arial, Helvetica, sans-serif;">本周收盘</span>" ItemStyle-Width ="160px" ItemStyle-HorizontalAlign ="Center"  SortExpression="id">
                      <EditItemTemplate>
                        <asp:TextBox ID="TextBox4" runat="server" Text='本周收盘'></asp:TextBox>
                       </EditItemTemplate>
                       <ItemTemplate>
                         <asp:Label ID="Label4" runat="server"   ></asp:Label>
                         </ItemTemplate>
                       </asp:TemplateField>
<asp:TemplateField HeaderText=" 上周收盘" ItemStyle-Width ="160px" ItemStyle-HorizontalAlign ="Center" SortExpression="id"> <EditItemTemplate> <asp:TextBox ID="TextBox1" runat="server" Text='上周收盘'></asp:TextBox> </EditItemTemplate> <ItemTemplate> <asp:Label ID="Label1" runat="server" ></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="涨跌" SortExpression="id" ItemStyle-Width ="60px" ItemStyle-HorizontalAlign ="Center" > <EditItemTemplate> <asp:TextBox ID="TextBox8" runat="server" Text='涨跌'></asp:TextBox> </EditItemTemplate> <ItemTemplate> <asp:Label ID="Label8" runat="server" ></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="幅度" SortExpression="id" ItemStyle-Width ="200px" ItemStyle-HorizontalAlign ="Center" > <EditItemTemplate> <asp:TextBox ID="TextBox2" runat="server" Text='幅度'></asp:TextBox> </EditItemTemplate> <ItemTemplate> <asp:Label ID="Label2" runat="server" ></asp:Label> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView>
 

然后在后台首先给第一列绑定数据

 //gridview1的数据绑定
    protected void bindbing()
    {
        string sql = @"sql语句";
        SqlParameter[] para ={
			 new SqlParameter("参数",值)
		};
        DataTable dd = GetDataTable(_conn, sql, para);
        if(dd.Rows.Count>0)
        {
            GridView1.DataSource = dd;
            GridView1.DataBind();
        }
        else
        {
            Label3.Visible = true;//别的用处,这里可以没有
        }
        
    }
gridview1需要有一个row_databind事件,这样就可以自动产生填充gridview的行

  protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        string st;
        string[] sArray;
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            //获得id,从而计算合计
            int id = Convert.ToInt32(DataBinder.Eval(e.Row.DataItem, "id").ToString());
            Label Label1 = (Label)e.Row.FindControl("Label1");
            Label Label2 = (Label)e.Row.FindControl("Label2");
            Label Label4 = (Label)e.Row.FindControl("Label4");
            Label Label8 = (Label)e.Row.FindControl("Label8");
            string sql = @"sql语句";
            SqlParameter[] para ={
			 new SqlParameter("参数",id)
		};
            DataTable dt = ExecuteNonQuery(_conn, sql, para);
            if (dt.Rows.Count > 0)
            {
                Label1.Text = dt.Rows[0][0].ToString();
                Label2.Text = dt.Rows[0][1].ToString();
                Label4.Text = dt.Rows[0][3].ToString();
                Label8.Text = dt.Rows[0][2].ToString();
            }
            else
            {
                string sql2= "sql语句";
                SqlParameter[] para2 ={
			                new SqlParameter("参数",id)
		                                     };
                DataTable dt2 = ExecuteNonQuery(_conn, sql2, para2);
                if (dt2.Rows.Count > 0)
                {
                    if (Convert.ToDateTime(textboxCalender.Text.Trim()) < Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd ")))
                    {
                        Label1.Text = "不可预约";
                        Label2.Text = string.Empty; 
                        Label4.Text = string.Empty;
                        Label8.Text = string.Empty;
                        return;
                    }
                    else if (Convert.ToDateTime(textboxCalender.Text.Trim()) == Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd ")))
                    {
                         st = dt2.Rows[0][1].ToString();
                        sArray= st.Split(':');
                        if (DateTime.Now.Hour >= int.Parse(sArray[0]))
                        {
                             Label1.Text = "不可预约";
                             Label2.Text = string.Empty;
                             Label4.Text = string.Empty;
                             Label8.Text = string.Empty;
                            return;
                        }
                        else
                        {
                            Label1.Attributes.Add("onclick", "openLayer(\"timespanid=" + id + "\")");//为了弹层设计,写一篇文章要用到这里
                            Label1.Style.Add("cursor", "pointer");//鼠标变成小手
                            Label1.Text = "可预约";
                            Label4.Text = string.Empty;
                            Label8.Text = string.Empty;
                        //改变一个颜色
                        //e.Row.BackColor = System.Drawing.Color.YellowGreen;//一行的背景色
                            e.Row.ForeColor = System.Drawing.Color.Red;//一行的字体颜色
                        }
                       
                    }
                    else
                    {
                        Label1.Attributes.Add("onclick", "openLayer(\"timespanid=" + id + "\")");
                        Label1.Text = "可预约";
                        Label1.Style.Add("cursor", "pointer");
                        Label4.Text = string.Empty;
                        Label8.Text = string.Empty;
                        e.Row.ForeColor = System.Drawing.Color.Red;
                    }
                   
                }else
                {
                    Label1.Text = "不可预约";
                    Label2.Text = string.Empty;
                    Label4.Text = string.Empty;
                    Label8.Text = string.Empty;
                }
            }
        }
    }
    



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值