国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

(論壇答疑點滴)怎么給Table動態添加控件并且得到控件的值?

2024-07-21 02:16:12
字體:
來源:轉載
供稿:網友
此例子達到的效果是:
每按一次button1,在表格table1中添加一行(行中有2列,一列是文本框,一列是下拉框),并且當按鈕第一次按下時再添加一個按鈕,點擊這個動態添加的按鈕,輸出表格中所有的控件的值。

前臺:
<form id="form1" method="post" runat="server">
            <asp:table id="table1" runat="server"></asp:table>
            <asp:placeholder id="placeholder1" runat="server"></asp:placeholder><br><br>
            <asp:button id="button1" runat="server" text="添加一行"></asp:button>
        </form>
放置一個table用來動態添加控件,放置一個placeholder用來動態添加按鈕,按下這個按鈕得到表中控件的值,按下button1按鈕一次就添加一行。

后臺:

button1按鈕的事件:
private void button1_click(object sender, system.eventargs e)
        {
            addtextboxs();
            if(viewstate["count"]==null)addbutton();
            viewstate["count"]=convert.toint16(viewstate["count"])+1;
        }
兩個方法:一個用來動態添加表格中的行,一個用來動態添加按鈕(按鈕不是按下button1添加一次的,所以加上if(viewstate["count"]==null)表示只有第一次加載按下按鈕的時候才添加)
private void addtextboxs()
        {
            tablerow tr=new tablerow();
            tablecell tc1=new tablecell();
            textbox t=new textbox();
            t.id="tb"+table1.rows.count;
            tc1.controls.add(t);
            tablecell tc2=new tablecell();
            dropdownlist dpl=new dropdownlist();
            dpl.id="dpl"+table1.rows.count;
            for(int i=0;i<10;i++)dpl.items.add(i.tostring());
            tc2.controls.add(dpl);
            tr.cells.add(tc1);
            tr.cells.add(tc2);
            table1.rows.add(tr);
        }

        private void addbutton()
        {        
            button b=new button();
            b.id="btn";
            b.text="按鈕";
            b.click += new system.eventhandler(btn_click);
            placeholder1.controls.add(b);
        }
最后是那個動態添加的按鈕的事件:
private void btn_click(object sender, system.eventargs e)
        {
            for(int i=0;i<table1.rows.count;i++)
            {
                response.write(((textbox)table1.rows[i].findcontrol("tb"+i)).text+((dropdownlist)table1.rows[i].findcontrol("dpl"+i)).selectedvalue+"<br>");
            }
        }
其實動態添加的控件不復雜,只需要注意一點:動態添加的控件在postback的時候也需要再次添加,那么怎么知道是不是按下了按鈕,或者說怎么知道已經按了幾次按鈕?就用一個標示位存放在viewstate中即可。

page_load事件:
private void page_load(object sender, system.eventargs e)
        {
            if(viewstate["count"]!=null)
            {
                for(int i=0;i<convert.toint16(viewstate["count"]);i++)
                    addtextboxs();
                addbutton();
            }
        } 注意不要添加if(!ispostback){},相反你倒可以添加if(ispostback),因為頁面第一次加載不可能已經按下按鈕了。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 茌平县| 武冈市| 高雄市| 库尔勒市| 齐河县| 东方市| 中山市| 苏尼特左旗| 泾源县| 湘西| 小金县| 永丰县| 翁源县| 浮山县| 德阳市| 博湖县| 通化县| 孝感市| 射洪县| 荔波县| 横山县| 广宗县| 鹤岗市| 海盐县| 甘南县| 和龙市| 玉山县| 报价| 三亚市| 买车| 卢湾区| 望都县| 洛宁县| 河北省| 湘阴县| 冕宁县| 琼海市| 佛坪县| 盐池县| 自贡市| 岳西县|