现在repeater实现了分页、查询的功能,现在想添加点击单元格修改内容并保存进数据库的功能!
目前可以点击之后出现textbox并且修改,但是保存不进数据库,我想添加一个button2按钮,修改页面之后,点击保存按钮,就能将这个repeater的当前页的内容提交数据库并保存。目前我的全部代码如下:
public static string sort { set; get; }
private static string strsql;
const string vsKey = "searchCriteria"; //ViewState key
SqlConnection con = new SqlConnection("server=localhost;database=moldsystem;uid=sa;pwd=sa");//这个是全局变量
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
searchOrders(string.Empty);
}
}
protected void Button1_Click(object sender, EventArgs e)
{
AspNetPager1.CurrentPageIndex = 1;
string s = " where customer_name =" + TextBox4.Text;
ViewState[vsKey] = s;
searchOrders(s);
}
void searchOrders(string sWhere)
{
//SqlDataSource1.SelectCommand = "select * from " + sWhere + " ";
//DataView dv = (DataView)SqlDataSource1.Select(DataSourceSelectArguments.Empty);
DataSet ds = new DataSet();
con.Open();
SqlDataAdapter sda = new SqlDataAdapter("select * from data_mold " + sWhere + " ", con);
sda.Fill(ds, "name");
con.Close();
AspNetPager1.RecordCount = ds.Tables["name"].Rows.Count; PagedDataSource pds = new PagedDataSource();
pds.DataSource = ds.Tables["name"].DefaultView;
pds.AllowPaging = true;
pds.CurrentPageIndex = AspNetPager1.CurrentPageIndex - 1;
pds.PageSize = AspNetPager1.PageSize;
Repeater1.DataSource = pds;
Repeater1.DataBind();
}
protected void AspNetPager1_PageChanging(object src, Wuqi.Webdiyer.PageChangingEventArgs e)
{
//this.AspNetPager1.CurrentPageIndex = e.NewPageIndex;
searchOrders((string)ViewState[vsKey]);
}
protected void AspNetPager1_PageChanged(object src, EventArgs e)
{
searchOrders((string)ViewState[vsKey]);
}
//protected void btn_all_Click(object sender, EventArgs e)
//{
// ViewState[vsKey] = null;
// btn_all.Enabled = false;
// AspNetPager1.CurrentPageIndex = 1;
// searchOrders(null);
//}
protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
{ }
protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
for (int i = 0; i < e.Item.Controls.Count; i++)
{
Control control = e.Item.Controls[i];
GetControl(control);
}
}
}
protected void GetControl(Control control)
{
foreach (Control c in control.Controls)
{ if (c.HasControls())
{
GetControl(c);
}
else
{
if (c.GetType().ToString() == "System.Web.UI.WebControls.TextBox")
{
TextBox txt = c as TextBox;
txt.Attributes.Add("onclick", "Write('" + txt.ClientID + "');");
txt.Attributes.Add("onblur", "Update('" + txt.ClientID + "');");
}
}
}
}
protected void ddlp_SelectedIndexChanged(object sender, EventArgs e)
{//脚模板中的下拉列表框更改时激发 }
protected void Button2_Click(object sender, EventArgs e)
{ }
目前可以点击之后出现textbox并且修改,但是保存不进数据库,我想添加一个button2按钮,修改页面之后,点击保存按钮,就能将这个repeater的当前页的内容提交数据库并保存。目前我的全部代码如下:
public static string sort { set; get; }
private static string strsql;
const string vsKey = "searchCriteria"; //ViewState key
SqlConnection con = new SqlConnection("server=localhost;database=moldsystem;uid=sa;pwd=sa");//这个是全局变量
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
searchOrders(string.Empty);
}
}
protected void Button1_Click(object sender, EventArgs e)
{
AspNetPager1.CurrentPageIndex = 1;
string s = " where customer_name =" + TextBox4.Text;
ViewState[vsKey] = s;
searchOrders(s);
}
void searchOrders(string sWhere)
{
//SqlDataSource1.SelectCommand = "select * from " + sWhere + " ";
//DataView dv = (DataView)SqlDataSource1.Select(DataSourceSelectArguments.Empty);
DataSet ds = new DataSet();
con.Open();
SqlDataAdapter sda = new SqlDataAdapter("select * from data_mold " + sWhere + " ", con);
sda.Fill(ds, "name");
con.Close();
AspNetPager1.RecordCount = ds.Tables["name"].Rows.Count; PagedDataSource pds = new PagedDataSource();
pds.DataSource = ds.Tables["name"].DefaultView;
pds.AllowPaging = true;
pds.CurrentPageIndex = AspNetPager1.CurrentPageIndex - 1;
pds.PageSize = AspNetPager1.PageSize;
Repeater1.DataSource = pds;
Repeater1.DataBind();
}
protected void AspNetPager1_PageChanging(object src, Wuqi.Webdiyer.PageChangingEventArgs e)
{
//this.AspNetPager1.CurrentPageIndex = e.NewPageIndex;
searchOrders((string)ViewState[vsKey]);
}
protected void AspNetPager1_PageChanged(object src, EventArgs e)
{
searchOrders((string)ViewState[vsKey]);
}
//protected void btn_all_Click(object sender, EventArgs e)
//{
// ViewState[vsKey] = null;
// btn_all.Enabled = false;
// AspNetPager1.CurrentPageIndex = 1;
// searchOrders(null);
//}
protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
{ }
protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
for (int i = 0; i < e.Item.Controls.Count; i++)
{
Control control = e.Item.Controls[i];
GetControl(control);
}
}
}
protected void GetControl(Control control)
{
foreach (Control c in control.Controls)
{ if (c.HasControls())
{
GetControl(c);
}
else
{
if (c.GetType().ToString() == "System.Web.UI.WebControls.TextBox")
{
TextBox txt = c as TextBox;
txt.Attributes.Add("onclick", "Write('" + txt.ClientID + "');");
txt.Attributes.Add("onblur", "Update('" + txt.ClientID + "');");
}
}
}
}
protected void ddlp_SelectedIndexChanged(object sender, EventArgs e)
{//脚模板中的下拉列表框更改时激发 }
protected void Button2_Click(object sender, EventArgs e)
{ }
<style type="text/css">
.textbox
{
border-width: 0px;
border-bottom-width: 1px;
border-bottom-style: dotted;
border-bottom-color: Gray;
width: 120px;
text-align: left;
}
.textbox1
{
border-width: 1px;
border-bottom-width: 1px;
border-bottom-style: dotted;
border-bottom-color: Gray;
width: 120px;
text-align: left;
}
.tr
{
width:500px;
}
.tr td
{
width: 125px;
text-align: left;
border-width: 1px;
}
</style> <script type="text/javascript">
function Write(obj)
{
document.getElementById(obj).readOnly=false;
document.getElementById(obj).focus();
document.getElementById(obj).className="textbox1";
}
function Update(obj)
{
document.getElementById(obj).readOnly=true;
document.getElementById(obj).className="textbox";
//ajax
//alert("修改成功");
}
</script>
<div>
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<br />
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Repeater ID="Repeater1" runat="server"
OnItemCommand="Repeater1_ItemCommand"
OnItemDataBound="Repeater1_ItemDataBound">
<HeaderTemplate>
<table border="1" width="400px" style="border-style: solid; border-width: 1px">
<tr>
<td>
用户名</td>
<td>
公司名称</td>
<td>
产品名称</td>
</tr>
</table>
</HeaderTemplate>
<ItemTemplate>
<div id="itemDiv" runat="server" width="500px" >
<table width="500px" border="0" cellpadding="0" cellspacing="0">
<tr class="tr">
<td>
<asp:TextBox ID="TextBox1" CssClass="textbox" ReadOnly="true" runat="server"
Text='<%# Eval("customer_name")%>'></asp:TextBox>
</td>
<td>
<asp:TextBox ID="TextBox2" CssClass="textbox" ReadOnly="true" runat="server"
Text='<%# Eval("company_name")%>'></asp:TextBox>
</td>
<td>
<asp:TextBox ID="TextBox3" CssClass="textbox" ReadOnly="true" runat="server"
Text='<%# Eval("product_name")%>'></asp:TextBox>
</td>
</tr>
</table>
</div>
</ItemTemplate>
<FooterTemplate>
<%--这是脚模板--%>
<tr>
<td colspan="2" style="font-size:12pt;color:#0099ff; background-color:#e6feda;">
共<asp:Label ID="lblpc" runat="server" Text="Label"></asp:Label>
页 当前为第
<asp:Label ID="lblp" runat="server" Text="Label"></asp:Label>
页
<asp:HyperLink ID="hlfir" runat="server" Text="首页"></asp:HyperLink>
<asp:HyperLink ID="hlp" runat="server" Text="上一页"></asp:HyperLink>
<asp:HyperLink ID="hln" runat="server" Text="下一页"></asp:HyperLink>
<asp:HyperLink ID="hlla" runat="server" Text="尾页"></asp:HyperLink>
跳至第
<asp:DropDownList ID="ddlp" runat="server" AutoPostBack="true"
OnSelectedIndexChanged="ddlp_SelectedIndexChanged" >
</asp:DropDownList>
页
</td>
</tr>
</table>
</FooterTemplate>
</asp:Repeater>
foreach(RepeaterItem item Repeater1.Items)
{
TextBox p=item.FindControl("TextBox4") as TextBox ;
string s=p.Text;
}
foreach(RepeaterItem item Repeater1.Items)
{
TextBox txt=item.FindControl("txt") as TextBox ;
if(txt!=null){}
}
并不只是修改过的textbox