Repeater中的textbox取值和賦值
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; }
}
}
新增資料:
編輯儲存資料: