出于某种原因,我的中继器上的项目数据库没有发射。我想不出原因。这是我所拥有的;(移除不必要的东西)
C#页面代码:
protected void Page_Load(object sender, EventArgs e)
{
load_Repeater();
}
private void load_Repeater()
{
dtLocations = new components.db.PIDSDB.SubPIDLocationsItemsDataTable();
dtLocations = taLocations.GetLocationsByProductsAndSPID('1', Convert.ToInt32(Request.QueryString["SPID"]));
rptFire.DataSource = dtLocations;
rptFire.DataBind();
}
protected void rptFire_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
DataRowView nRow = null;
switch (e.Item.ItemType)
{
case ListItemType.Item:
case ListItemType.AlternatingItem:
Int32 sqrmtr = Convert.ToInt32(nRow["LocationSqrMtr"].ToString());
Int32 mypence = Convert.ToInt32(nRow["PricePerItem"].ToString());
Int32 mandays = Convert.ToInt32(nRow["ManDayPerItem"].ToString());
((Label)e.Item.FindControl("lblName")).Text = "" + nRow["LocationName"];
((Label)e.Item.FindControl("lblArea")).Text = "" + nRow["LocationSqrMtr"];
((Label)e.Item.FindControl("lblCharge")).Text = ""+ Functions.MultiplyNumbers(sqrmtr, mypence);
((Label)e.Item.FindControl("lblPence")).Text = "" + nRow["PricePerItem"];
((Label)e.Item.FindControl("lblManDays")).Text = "" + Functions.MultiplyNumbers(sqrmtr, mandays);
((Label)e.Item.FindControl("lblCosts")).Text = "WORK OUT";
((Label)e.Item.FindControl("lblMargin")).Text = "WORK OUT";
break;
}
}中的.aspx页面中继器代码:
<asp:Repeater runat="server" ID="rptFire" OnItemDataBound="rptFire_ItemDataBound">
<ItemTemplate>
<tr>
<td><asp:Label runat="server" ID="lblName"></asp:Label></td>
<td><asp:Label runat="server" ID="lblArea"></asp:Label></td>
<td><asp:Label runat="server" ID="lblCharge"></asp:Label></td>
<td><asp:Label runat="server" ID="lblPence"></asp:Label></td>
<td><asp:Label runat="server" ID="lblManDays"></asp:Label></td>
<td><asp:Label runat="server" ID="lblCosts"></asp:Label></td>
<td><asp:Label runat="server" ID="lblMargin"></asp:Label></td>
</tr>
</ItemTemplate>
</asp:Repeater>数据源和databind代码运行的不是项目数据库。
发布于 2014-01-13 10:27:57
您可能在aspx文件的页头中缺少AutoEventWireup=true。
编辑:--如果按钮处理程序确实有效,那么可能是数据库的问题--您确定是在MyRepeater上调用DataBind还是它的父控件?如果您正在手动调用DataBind,它是否依赖于页面上的Page.IsPostBack?
ItemDataBound只会在DataBinding期间开火。如果你在PostBack上做了一个PostBack,它应该会触发。然而,DataBind不会自动发生在PostBack上。(相反,Repeater将从ViewState进行重建。)如果不依赖于数据,则应考虑使用ItemCreated事件。这将在构建Repeater时触发,无论是在DataBind期间还是从ViewState。
https://stackoverflow.com/questions/21042857
复制相似问题