repeater的双重绑定

 前天,我做企业列表的时候遇到了难题,因为在企业的company表里,类别只是一个typeid,我必须要通过companytype表里的读取类别的名字.我在数据绑定的时候用的是repeater.在绑定以后还需要对类别进行二次绑定.遇到一些问题,就是在repeater里

 <asp:Repeater runat="server" OnItemDataBound="companylist_ItemDataBound" >
                              <ItemTemplate>
                            <table width="576" border="0" cellspacing="0" cellpadding="0">
                                <tr>
                                  <td background="../member/i/member_06.gif">
                                  
                                  <table width="576" border="0" cellspacing="0" cellpadding="0">
                                      <tr>
                                        <td width="441">
                                        <table width="100%" border="0" cellspacing="5" cellpadding="0">
                                                    <tr>
                                                         <td width="100"><font color="#FF0000"><strong>[<asp:Label runat="server" Text=""></asp:Label>]  </strong></font></td>
                                                         <td align="left" width="250"><a href= "CompanyDetail.aspx?CompanyID=<%#Eval("Company_ID") %>&temp_name=<%#Eval("Template_3") %>"><%#Eval("CompanyName")%></a></td>
                                                         <td> <%#Eval("CompanyCity")%></td>
                                                         <td></td>
                                                     </tr>
                                                     <tr>
                                                         <td colspan="4"><%# GetCutTitle(HtmlCoder(Convert.ToString(Eval("CompanyComment"))))%></td>
                                                      </tr>
                                                       </table>
                                        </td>
                                        <td width="135"><div align="center"></div></td>
                                      </tr>
                                    </table>
                                    </td>
                                </tr>
                              </table>
                              </ItemTemplate>
                              </asp:Repeater>

在后置代码里是这样写的

 

 protected void companylist_ItemDataBound(object sender, RepeaterItemEventArgs e)
 {

  string cnstr = System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
  SqlConnection cn0 = new SqlConnection(cnstr);
  cn0.Open();
  if (!string.IsNullOrEmpty(Convert.ToString(DataBinder.Eval(e.Item.DataItem, "CompanyClass_3"))))
  {
   string mysql = "SELECT * FROM T_CompanyClass_3 WHERE CompanyClass_ID='" + DataBinder.Eval(e.Item.DataItem, "CompanyClass_3") + "'";
   SqlCommand cm0 = new SqlCommand(mysql, cn0);
   SqlDataReader dr = cm0.ExecuteReader();
   if (dr.Read())
   {
    Label myLabel = (Label)e.Item.FindControl("myLabel");
    myLabel.Text = Convert.ToString(dr["name"]);
   }
   
  }
  else
  {
   Label myLabel = (Label)e.Item.FindControl("myLabel");
   myLabel.Text = "无";
  }
  
 }

各位注意看哦.在前置代码里,我们在VS2005里一般写为 Eval(“companyclass_3”)但是在二次绑定的时候,我们用的是DataBinder.Eval(e.Item.DataItem, "CompanyClass_3")

还有就是,平时我们对lable控件付值是用lable.text=fsf;形式就可以了,但是在这里,我们采用的是

Label myLabel = (Label)e.Item.FindControl("myLabel");
    myLabel.Text = Convert.ToString(dr["name"]);

,我要去查下为什么这么写哦.有知道的告诉偶一声也可以哦

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值