(此图为网上图片,只做例子使用)
如上图的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;
}
}
}
}