1、自己做了一个demo,属性对应属性值,属性不是写死的后台可以维护,值是用户自己填写的,方便以后查看
.aspx文件中
<form runat="server" id="form1">
<table border="0" cellpadding="0" cellspacing="1" width="50%">
<asp:Repeater ID="rpShuxing" runat="server">
<ItemTemplate>
<tr>
<td>
<asp:Label ID="lbName" runat="server" Text='<%#Eval("SName")%>'></asp:Label>
:
</td>
<td>
<asp:TextBox ID="txtShuxing" Height="20px" Width="180px" runat="server"></asp:TextBox>
</td>
</tr>
</ItemTemplate>
</asp:Repeater>
</table>
<br />
<asp:Button ID="btnAdd" runat="server" Text="添加" OnClick="btnAdd_Click" />
<br />
<asp:Label ID="lbList" runat="server"></asp:Label>
<asp:HyperLink ID="HyperLink1" NavigateUrl="~/Default.aspx?id=1" runat="server">编辑</asp:HyperLink>
</form>
.cs文件中
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindDate();
HyperLink1.Visible = false;
if (Request.QueryString["id"] == "1"&&HttpContext.Current.Session["info"]!=null)
{
btnAdd.Text = "保存";
List<Test> list = new List<Test>();
string sName = HttpContext.Current.Session["info"] as string;
string[] ss = sName.Split(',');
foreach (RepeaterItem item in rpShuxing.Items)
{
TextBox txtName = (TextBox)item.FindControl("txtShuxing");
Label lbName = (Label)item.FindControl("lbName");
foreach (var item1 in ss)
{
string[] nnnn = item1.Split(':');
if (nnnn.Length == 2 && lbName.Text == nnnn[0])
{
txtName.Text = nnnn[1];
}
}
}
}
}
}
private void BindDate()
{
List<Test> list = new List<Test>();
Test t = new Test();
t.SName = "种类";
list.Add(t);
Test t1 = new Test();
t1.SName = "产地";
list.Add(t1);
Test t2 = new Test();
t2.SName = "口味";
list.Add(t2);
Test t3 = new Test();
t3.SName = "颜色";
list.Add(t3);
rpShuxing.DataSource = list;
rpShuxing.DataBind();
}
protected void btnAdd_Click(object sender, EventArgs e)
{
StringBuilder sName = new StringBuilder();
foreach (RepeaterItem item in rpShuxing.Items)
{
TextBox txtName = (TextBox)item.FindControl("txtShuxing");
Label lbName = (Label)item.FindControl("lbName");
if (txtName.Text != "")
{
sName.Append(lbName.Text + ":" + txtName.Text + ",");
}
}
lbList.Text = sName.ToString().TrimEnd(',');
HyperLink1.Visible = true;
HttpContext.Current.Session["info"] = sName.ToString().TrimEnd(',');
}
public class Test
{
private string m_sName;
public string SName
{
get { return m_sName; }
set { m_sName = value; }
}
private string m_sValue;
public string SValue
{
get { return m_sValue; }
set { m_sValue = value; }
}
private string m_sInfo;
public string SInfo
{
get { return m_sInfo; }
set { m_sInfo = value; }
}
}
添加数据:

编辑保存数据:

本文展示了如何在ASP.NET中使用Repeater控件动态显示和处理TextBox输入值。通过示例代码解释了在Page_Load事件中如何从Session中获取并设置TextBox的值,以及在按钮点击事件中如何收集并保存TextBox的数据到Session。
1499

被折叠的 条评论
为什么被折叠?



