1. 程式人生 > >Repeater中的textbox取值和賦值

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 />
    &nbsp;&nbsp;&nbsp;&nbsp;
    <asp:Button ID="btnAdd" runat="server" Text="新增" OnClick="btnAdd_Click" />
    <br />
    <asp:Label ID="lbList" runat="server"></asp:Label>
    &nbsp;&nbsp;&nbsp;&nbsp;
    <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; }
        }
    }

新增資料:


編輯儲存資料: