首页 新闻 搜索 专区 学院

asp.net动态生成的控件怎么给他定位啊

0
[已关闭问题]

一下是我写的代码:

    protected string t()
    {
        IList<Biaodan> list = BiaodanManager.GetAll();
        StringBuilder strlist = new StringBuilder();
        strlist.Append("<table><tr><td>姓名:<input ID=\"TextBox1\" runat=\"server\"></asp:TextBox></td></tr><tr><td>姓名:<input ID=\"TextBox1\" runat=\"server\"></asp:TextBox></td></tr>");
        foreach (Biaodan b in list)
        {
            if (b.FTypeName == "文本录入")
            {
                //DropDownList d = new DropDownList();
                //ListItem item = new ListItem();
                //item.Text = "a";
                //item.Value = "a";
                //d.Items.Add(item);
                TextBox t = new TextBox();
                t.ID = b.JId.ToString();
                //Page.FindControl("asda").Controls.Add(t);
                strlist.AppendLine("<tr>单位:<span ID=\"s" + b.JId + "\" ></span>  </td></tr>");
                string f = "s" + b.JId.ToString();
                Page.FindControl("form1").FindControl(f).Controls.Add(t);
            }

        }
        strlist.Append("</table>");
        return strlist.ToString();
    }

问题补充: 控件是动态生成的怎么往Repeater里放啊?
荨芯的主页 荨芯 | 初学一级 | 园豆:145
提问于:2010-08-06 09:40
< >
分享
其他回答(3)
0

为什么不用Repeater,模板项里可以直接写控件呀..不用这样拼接。

Astar | 园豆:40805 (高人七级) | 2010-08-06 09:51
控件是动态生成的怎么往Repeater里放啊?
支持(0) 反对(0) 荨芯 | 园豆:145 (初学一级) | 2010-08-06 10:04
@荨芯:放一个Repeater,设置好模板,绑定好数据源,隐藏。在你需要动态添加时,绑定它并显示。
支持(0) 反对(0) Astar | 园豆:40805 (高人七级) | 2010-08-06 10:12
大哥能不能写出来啊小弟太笨了弄不出来谢谢了!
支持(0) 反对(0) 荨芯 | 园豆:145 (初学一级) | 2010-08-06 10:28
@荨芯:代码有点多,我只列出aspx里的,这里动态添加的是DropDownList。<WebControl:WebRepeaterPages ID="RptList" runat="server" OnItemDataBound="RptList_ItemDataBound"> <HeaderTemplate><table><thead><tr>...<th width="15%">操作</th>...</tr></thead><tbody></HeaderTemplate> <ItemTemplate><tr>...<td><WebControl:WebDropDownList ID="DdlIsLock" runat="server" AutoPostBack="true" OnSelectedIndexChanged="DdlIsLock_SelectedIndexChanged"><asp:ListItem Value="1">是</asp:ListItem><asp:ListItem Value="0">否</asp:ListItem></WebControl:WebDropDownList></td>...</tr></ItemTemplate><FooterTemplate></tbody></table></FooterTemplate></WebControl:WebRepeaterPages>
支持(0) 反对(0) Astar | 园豆:40805 (高人七级) | 2010-08-06 10:45
我写的是一个提交信息的页面后台添加完控件之后在前台显示添加的控件用这些控件提交信息
支持(0) 反对(0) 荨芯 | 园豆:145 (初学一级) | 2010-08-06 10:49
@荨芯:那样也是可以的,动态生成表单。也可以做到每项是不同的控件,提交时遍历Repeater中的所有控件,获取值提交。
支持(0) 反对(0) Astar | 园豆:40805 (高人七级) | 2010-08-06 10:55
哎愁死了不会写!
支持(0) 反对(0) 荨芯 | 园豆:145 (初学一级) | 2010-08-06 11:18
@荨芯:你可以加我,我给你发点代码片断,这里发代码不方便。
支持(0) 反对(0) Astar | 园豆:40805 (高人七级) | 2010-08-06 11:22
你qq多少啊? 我的qq:1097591262
支持(0) 反对(0) 荨芯 | 园豆:145 (初学一级) | 2010-08-06 19:18
0

ItemCreated 事件里面写:

 protected void Repeater1_ItemCreated(object sender, RepeaterItemEventArgs e)
        {
            e.Item.Controls.Add(new Control());
        }
HUHU慈悲 | 园豆:9973 (大侠五级) | 2010-08-06 10:18
0

可以通过添加样式表来完成定位

ZEKELOVE | 园豆:263 (菜鸟二级) | 2010-08-06 10:26
样式定位怎么弄啊?
支持(0) 反对(0) 荨芯 | 园豆:145 (初学一级) | 2010-08-06 10:37
0

不是很明白你的问题,不过看看这个也许有一点帮助。http://www.cnblogs.com/xingshao/archive/2010/08/06/1793827.html

楼主是要实现控件定位呢?还是实现动态添加控件呢?明确一下,可以重点解决。

定位:按照你的思路拼接页面html代码也可以,但是要拼接的很好。控制位置可以用CSS样式来实现。或者指定height、width。

动态生成的控件:绑定一个repeater或者datalist 然后对Items进行绑定。具体项的类型〔你提到是“文本框”的话〕判断数据中字段标示“文本框”类型。然后动态添加一个对应的文本框。〔实现:后台.cs代码实现即可).或者编写一个基类的控件。然后在控件中定义不同的类型。根据绑定的数据来初始化不同的表现〔文本框、多选。单选等。〕

邢少 | 园豆:10926 (专家六级) | 2010-08-06 11:28
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册