在DataList 列表中,我增加了一个CheckBox控件,勾选后按"确定"按钮后该即把该控件是否选中状态写进数据表的"tuijian"字段中(选中后"tuijian"字段值为"1",未选中为"0"),但我不知道在PageLoad事件中怎样再把该控件是否选中的状态显示出来.我是个菜鸟,大家帮帮我,谢谢大家!!以下是代码:
public partial class Admin_TuiJian_Img : System.Web.UI.Page
{
protected OleDbDataAdapter da;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
getProduct();
}
}
} private void getProduct()
{ string strLoad = Server.MapPath("~//data//clothes.mdb");
OleDbConnection conn = new OleDbConnection("provider=Microsoft.Jet.OleDb.4.0;Data Source=" + strLoad + ";");
string sel = "Select * From product" ;
da = new OleDbDataAdapter();
DataSet ds = new DataSet();
da.SelectCommand = new OleDbCommand(sel, conn);
try
{
conn.Open();
da.Fill(ds, "product");
DataList1.DataKeyField = "ProductId";
DataList1.DataSource = ds;
DataList1.DataBind();
conn.Close();
}
catch (Exception ex)
{
Response.Write(ex.ToString()); }
int cup = Convert.ToInt32(this.lb_CurrentPage.Text); //显示当前页
PagedDataSource ps = new PagedDataSource();
ps.DataSource = ds.Tables["product"].DefaultView;
ps.AllowPaging = true;
ps.PageSize = 6;
ps.CurrentPageIndex = cup - 1;
lb_count.Text = ps.DataSourceCount.ToString();
lb_page.Text = ps.PageCount.ToString(); //总页数
if (!IsPostBack)
{
for (int i = 1; i < ps.PageCount + 1; i++)
{
this.DropDownList1.Items.Add(i.ToString()); }
LinkUp.Enabled = true;
LinkDown.Enabled = true;
}
try
{
DropDownList1.SelectedItem.Text = cup.ToString();
DataList1.DataSource = ps;
DataList1.DataKeyField = "ProductId";
DataList1.DataBind();
}
catch (Exception ex)
{
Response.Write(ex.ToString());
} } protected void LinkDown_Click(object sender, EventArgs e) //下翻一页
{
try
{
lb_CurrentPage.Text = Convert.ToString(Convert.ToInt32(lb_CurrentPage.Text) + 1);
DropDownList1.SelectedValue = lb_CurrentPage.Text;
getProduct();
}
catch (Exception)
{
Response.Write("<script language=javascript>" + "alert(\"这是最后一页\")" + "</script>");
lb_CurrentPage.Text = "1";
getProduct();
} }
protected void LinkUp_Click(object sender, EventArgs e)
{
try
{
if (Convert.ToInt16(lb_CurrentPage.Text) > 1)
{
lb_CurrentPage.Text = Convert.ToString(Convert.ToInt32(lb_CurrentPage.Text) - 1);
DropDownList1.SelectedValue = lb_CurrentPage.Text;
getProduct();
}
else
{
Response.Write("<script language=javascript>" + "alert(\"已经是第一页\")" + "</script>");
}
}
catch (Exception)
{ Response.Write("<script language=javascript>" + "alert(\"已经是第一页\")" + "</script>"); } }
protected void LinkFirst_Click(object sender, EventArgs e)
{
if (lb_CurrentPage.Text != "1")
lb_CurrentPage.Text = "1";
else
{
Response.Write("<script language=javascript>" + "alert(\"已经是第一页\")" + "</script>");
}
getProduct(); }
protected void LinkLast_Click(object sender, EventArgs e)
{
if (lb_CurrentPage.Text.ToString() != lb_page.Text.ToString())
lb_CurrentPage.Text = lb_page.Text.ToString();
else
{
Response.Write("<script language=javascript>" + "alert(\"已经是最后一页\")" + "</script>");
}
getProduct(); }
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e) //分页列表
{
int page = Convert.ToInt16((DropDownList1.SelectedItem.Value));
lb_CurrentPage.Text = page.ToString();
getProduct();
} protected void Button1_Click(object sender, EventArgs e) //点击确定后把CheckBox选中的值写进数据表
{ CheckBox chk;
for (int i = 0; i < DataList1.Items.Count;i++)
{
chk = (CheckBox)DataList1.Items[i].FindControl("checkbox1");
if (chk.Checked)
{
string strLoad = Server.MapPath("~//data//clothes.mdb");
OleDbConnection conn = new OleDbConnection("provider=Microsoft.Jet.OleDb.4.0;Data Source=" + strLoad + ";");
conn.Open();
string strUpdate = "Update Product Set tuijian=1 Where ProductId=" + Convert.ToInt32(DataList1.DataKeys[i].ToString());
OleDbCommand cmd = new OleDbCommand(strUpdate,conn);
cmd.ExecuteNonQuery();
conn.Close();
}
}
}
}
public partial class Admin_TuiJian_Img : System.Web.UI.Page
{
protected OleDbDataAdapter da;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
getProduct();
}
}
} private void getProduct()
{ string strLoad = Server.MapPath("~//data//clothes.mdb");
OleDbConnection conn = new OleDbConnection("provider=Microsoft.Jet.OleDb.4.0;Data Source=" + strLoad + ";");
string sel = "Select * From product" ;
da = new OleDbDataAdapter();
DataSet ds = new DataSet();
da.SelectCommand = new OleDbCommand(sel, conn);
try
{
conn.Open();
da.Fill(ds, "product");
DataList1.DataKeyField = "ProductId";
DataList1.DataSource = ds;
DataList1.DataBind();
conn.Close();
}
catch (Exception ex)
{
Response.Write(ex.ToString()); }
int cup = Convert.ToInt32(this.lb_CurrentPage.Text); //显示当前页
PagedDataSource ps = new PagedDataSource();
ps.DataSource = ds.Tables["product"].DefaultView;
ps.AllowPaging = true;
ps.PageSize = 6;
ps.CurrentPageIndex = cup - 1;
lb_count.Text = ps.DataSourceCount.ToString();
lb_page.Text = ps.PageCount.ToString(); //总页数
if (!IsPostBack)
{
for (int i = 1; i < ps.PageCount + 1; i++)
{
this.DropDownList1.Items.Add(i.ToString()); }
LinkUp.Enabled = true;
LinkDown.Enabled = true;
}
try
{
DropDownList1.SelectedItem.Text = cup.ToString();
DataList1.DataSource = ps;
DataList1.DataKeyField = "ProductId";
DataList1.DataBind();
}
catch (Exception ex)
{
Response.Write(ex.ToString());
} } protected void LinkDown_Click(object sender, EventArgs e) //下翻一页
{
try
{
lb_CurrentPage.Text = Convert.ToString(Convert.ToInt32(lb_CurrentPage.Text) + 1);
DropDownList1.SelectedValue = lb_CurrentPage.Text;
getProduct();
}
catch (Exception)
{
Response.Write("<script language=javascript>" + "alert(\"这是最后一页\")" + "</script>");
lb_CurrentPage.Text = "1";
getProduct();
} }
protected void LinkUp_Click(object sender, EventArgs e)
{
try
{
if (Convert.ToInt16(lb_CurrentPage.Text) > 1)
{
lb_CurrentPage.Text = Convert.ToString(Convert.ToInt32(lb_CurrentPage.Text) - 1);
DropDownList1.SelectedValue = lb_CurrentPage.Text;
getProduct();
}
else
{
Response.Write("<script language=javascript>" + "alert(\"已经是第一页\")" + "</script>");
}
}
catch (Exception)
{ Response.Write("<script language=javascript>" + "alert(\"已经是第一页\")" + "</script>"); } }
protected void LinkFirst_Click(object sender, EventArgs e)
{
if (lb_CurrentPage.Text != "1")
lb_CurrentPage.Text = "1";
else
{
Response.Write("<script language=javascript>" + "alert(\"已经是第一页\")" + "</script>");
}
getProduct(); }
protected void LinkLast_Click(object sender, EventArgs e)
{
if (lb_CurrentPage.Text.ToString() != lb_page.Text.ToString())
lb_CurrentPage.Text = lb_page.Text.ToString();
else
{
Response.Write("<script language=javascript>" + "alert(\"已经是最后一页\")" + "</script>");
}
getProduct(); }
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e) //分页列表
{
int page = Convert.ToInt16((DropDownList1.SelectedItem.Value));
lb_CurrentPage.Text = page.ToString();
getProduct();
} protected void Button1_Click(object sender, EventArgs e) //点击确定后把CheckBox选中的值写进数据表
{ CheckBox chk;
for (int i = 0; i < DataList1.Items.Count;i++)
{
chk = (CheckBox)DataList1.Items[i].FindControl("checkbox1");
if (chk.Checked)
{
string strLoad = Server.MapPath("~//data//clothes.mdb");
OleDbConnection conn = new OleDbConnection("provider=Microsoft.Jet.OleDb.4.0;Data Source=" + strLoad + ";");
conn.Open();
string strUpdate = "Update Product Set tuijian=1 Where ProductId=" + Convert.ToInt32(DataList1.DataKeys[i].ToString());
OleDbCommand cmd = new OleDbCommand(strUpdate,conn);
cmd.ExecuteNonQuery();
conn.Close();
}
}
}
}
选中checkbox后,为viewstate赋值,page load时根据iewstate的值显示控件状态
说明: 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。 编译器错误消息: CS0019: 运算符“==”无法应用于“object”和“int”类型的操作数源错误:行 24: <asp:CheckBox ID="CheckBox1" runat="server" Checked='<%# Eval("tuijian") == 1 ? True : False %>'/> <asp:Image ID="Image1" runat="server" ImageUrl='<%# Eval("smallImg") %>' Width="150px" Height="150px"/><br />
以下是我的界面生成代码:<%@ Page Language="C#" AutoEventWireup="true" CodeFile="TuiJian_Img.aspx.cs" Inherits="Admin_TuiJian_Img" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
<div style="margin-left:auto;margin-right:auto; width:80%;" >
选择类别: <asp:DropDownList ID="DropDownList2" runat="server" AutoPostBack="True" DataSourceID="AccessDataSource1" DataTextField="Type_Name" DataValueField="id">
</asp:DropDownList><asp:AccessDataSource ID="AccessDataSource1" runat="server" DataFile="~/data/clothes.mdb"
SelectCommand="SELECT [Type_Name], [id] FROM [Product_Type]"></asp:AccessDataSource>
</div>
<br />
<br />
<div style="margin-left:auto;margin-right:auto; width:100%; vertical-align:middle;">
<asp:DataList ID="DataList1" runat="server" RepeatColumns="3" CellPadding="3" CellSpacing="3" Width="100%" RepeatDirection="Horizontal" Height="500px" GridLines="Both" HorizontalAlign="Center">
<ItemTemplate>
ID:<asp:Label ID="Label1" runat="server" Text='<%#Eval("ProductId") %>'>'></asp:Label><br />
<asp:CheckBox ID="CheckBox1" runat="server" Checked='<%# Eval("tuijian") == 1 ? True : False %>'/> <asp:Image ID="Image1" runat="server" ImageUrl='<%# Eval("smallImg") %>' Width="150px" Height="150px"/><br />
产品名称:<asp:Label ID="Label2" runat="server" Text='<%#Eval("Product_Name")%>'>'></asp:Label>
<br />
</ItemTemplate>
<ItemStyle BorderStyle="Solid" />
</asp:DataList>
<asp:Button ID="Button1" runat="server" Text="确定" OnClick="Button1_Click" />
<br />
<br />
共<asp:Label ID="lb_count" runat="server"></asp:Label>条记录
共<asp:Label ID="lb_page" runat="server"></asp:Label>页
当前第<asp:Label ID="lb_CurrentPage" runat="server" Text="1"></asp:Label>页
<asp:LinkButton ID="LinkFirst" runat="server" OnClick="LinkFirst_Click">第一页</asp:LinkButton>
<asp:LinkButton ID="LinkUp" runat="server" OnClick="LinkUp_Click">上一页</asp:LinkButton>
<asp:LinkButton ID="LinkDown" runat="server" OnClick="LinkDown_Click">下一页</asp:LinkButton>
<asp:LinkButton ID="LinkLast" runat="server" OnClick="LinkLast_Click">最后一页</asp:LinkButton>
转到第<asp:DropDownList ID="DropDownList1" runat="server" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged" AutoPostBack="True">
</asp:DropDownList>页
</div>
</form>
</body>
</html>
类型转换