asp中的repeater控件确实挺好,可以自己设计模板
不过我是初学者,对这个数据绑定有一定的疑问
现在我想问问
1.怎样才能直接写代码通过webconfig中的appsettings字段的数据库连接字段来绑定到数据库呢?2.如何将数据库中的字段显示到repeater控件里呢,这个数据绑定的代码我查了网上很多资料有点没头绪,
实在是初学者,不知道大家可不可以提供一个简单的前台代码,后台代码来给我解释一下~3.我想实现一个类似于新浪围脖的回复对方微博的回复功能,这个回复框和别人的回复内容是要我们自己点击了那个回复按钮才会显示。我想问一下这里是否用到了repeater的嵌套呢?
如果用到嵌套的话,希望大家能给一个嵌套的例子~如果没用到的话又是怎么实现的呢?我看过了网上不少的资料,好多都只有代码没有解释,因为我实在是初学者,真的有点搞不懂,谢谢大家!

解决方案 »

  1.   


    <appSettings>
        <add key="SqlServerConnString" value="server=.;user id=sa;pwd=111;database=test1"/>
    </appSettings><asp:Repeater ID="Repeater1" runat="server">
            <ItemTemplate>
                <%# Eval("id") %>
            </ItemTemplate>
        </asp:Repeater>protected void Page_Load(object sender, EventArgs e)
        {
            DataTable dt = new DataTable();
            using (SqlConnection conn = new SqlConnection(ConfigurationManager.AppSettings["SqlServerConnString"].ToString()))
            {
                conn.Open();
                SqlCommand cmd = new SqlCommand("select * from a", conn);
                SqlDataAdapter adapter = new SqlDataAdapter(cmd);
                adapter.Fill(dt);
            }
            Repeater1.DataSource = dt;
            Repeater1.DataBind();
        }
      

  2.   

    3.我想实现一个类似于新浪围脖的回复对方微博的回复功能,这个回复框和别人的回复内容是要我们自己点击了那个回复按钮才会显示。我想问一下这里是否用到了repeater的嵌套呢?恩,可以用嵌套,主repeater显示微薄,子repeater显示对某条微薄的评论列表点击回复出现文本框的功能,可以用js来操作dom元素
      

  3.   

    private void RpTypeBind()
            {//GetQuestionTypeAndCount() 返回一个datatable
                this.rptypelist.DataSource = LiftQuestionCtr.GetQuestionTypeAndCount();                   
                this.rptypelist.DataBind();
            }
                   protected void rptypelist_ItemDataBound(object sender, RepeaterItemEventArgs e)
            {//判断里层repeater处于外层repeater的哪个位置( AlternatingItemTemplate,FooterTemplate,//HeaderTemplate,,ItemTemplate,SeparatorTemplate)
                if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
                {
                    Repeater rep = e.Item.FindControl("rpquestionlist") as Repeater;//找到里层的repeater对象
                    DataRowView rowv = (DataRowView)e.Item.DataItem;//找到分类Repeater关联的数据项 
                    int typeid = Convert.ToInt32(rowv["qtid"]); //获取填充子类的id 
                    rep.DataSource = LiftQuestionCtr.GetSomeQuestionsByTypeid(typeid, 2);
                    rep.DataBind();
                }
            }
    <table border="0" cellpadding="0" cellspacing="0" style="margin-bottom: 5px" width="100%">
        <asp:Repeater runat="server" ID="rptypelist" OnItemDataBound="rptypelist_ItemDataBound">
            <ItemTemplate>
                <tr>
                    <td class="fb">
                        &nbsp;&nbsp;<a href="Lists.aspx?Qtid=<%#Eval("qtid") %>"><%#Eval("qtypename") %></a> <span id="askCount_15"
                            class="date2">[<%#Eval("typecount")%>]</span>
                    </td>
                </tr>
                <tr>
                    <td>
                        <div id="askTop2_15" class="ask_list">
                            <asp:Repeater runat="server" ID="rpquestionlist">
                                <ItemTemplate>
                                    <a href="Question.aspx?qid=<%#Eval("liftquestionid")%>">
                                        <%#Eval("questiontitle")%></a><br />
                                </ItemTemplate>
                            </asp:Repeater>
                        </div>
                    </td>
                </tr>
            </ItemTemplate>
        </asp:Repeater>
    </table>
    repeater的嵌套