2011-08-15 42 views
0

我在我的aspx页面有一个中继器。这将为不同类型的呼叫的更改数据源,因此我不能做中继器绑定@ serverside

<ItemTemplate> 
      <tr > 
     <td bgcolor="" valign="top"> 
        <%#DataBinder.Eval(Container.DataItem, "Id")%> 
       </td> 

...

的DataItem的会有所不同。这是做服务器端的最佳方式?

感谢,

+0

只要您当前的数据源具有Id属性,是不是没问题? –

+0

是的,它会有一个ID,但其他列是不同的。 – user626309

+0

DataField会不同吗?如下所示,这次可能是PersonID,下一个ProductID? –

回答

0

就个人而言,最好的办法将是创建界面,写每一个类型的适配器。在中继器中,你只能使用这个接口工作。

+0

我想你是对的,但我只是想,如果我能以更简单直接的方式做到这一点,因为我只有一天的时间来完成并测试它。 – user626309

+0

但这种方式将是最容易的。如果您需要在每个数据源中只绑定一个具有相同名称的字段的逻辑,那么<%#Eval(“ID”)%>实际上可以工作......但是如果出现更复杂的不同名称或更多的字段,则需要绑定一个字段。 ..你只是会花更多的时间在bug修复和所有如果/切换解决。感谢你的时间,让编译器检查所​​有的错误;) – IceN

+0

我也有一些jscript $(document).ready(function()which which need the repeater id or else it will fail the build。 – user626309

0

你可以做

<asp:Label ID="lable1" runat="server" ondatabinding="label1_ondatabinding" /> 

和手工填写在事件处理程序的数据。

protected void label1_ondatabinding(object sender, EventArgs e) 
{ 
    ((Label)sender).Text = ... 
} 
+0

Thanks,but I do not需要做ondatabinding,但可能onload,什么是函数签名,我如何创建项目模板? – user626309