中继器,表和更新面板 - 无法正常工作

时间:2018-06-10 23:25:39

标签: c# asp.net

我希望您在使用c#。

的ASP.NET中一起使用Repeater,Table和UpdatePanel

我需要什么?我有类别和itens(有重量),用户需要为该项目设置等级。在CodeBehinde,我将权重与等级相加,我得到了一个结果。

我的问题是什么?我可以正确地获得一个返回值(值)但它仍然在我的表之外(与Repeater一起使用)。

我搜索了很多解决方案,但没有任何工作。我希望任何人都可以帮助我。

谢谢。

ASPX:

 <asp:ScriptManager ID="SM1" runat="server" EnablePartialRendering="true"> </asp:ScriptManager>
            <asp:Repeater ID="RepeaterItem" runat="server" OnItemDataBound="RepeaterItem_ItemDataBound" 
                            OnItemCommand="RepeaterItem_ItemCommand" 
                            onitemcreated="RepeaterItem_ItemCreated" >
                <HeaderTemplate>
                <table class="table table-condensed" style="border-collapse:collapse; font-size:14px">
                        <thead>
                        </thead>
                </HeaderTemplate>

                <ItemTemplate>
                    <tbody class="border border-0">
                        <tr> 
                            <td class="col-1 border border-primary"> <asp:Label  ID="LabelId" runat="server" Text=""></asp:Label> </td>                                
                            <td class="col-2 border border-primary text-center"> <asp:Label  ID="LabelNome" runat="server" Text=""></asp:Label> </td>
                            <td class="col-1 border border-primary text-center"> <asp:Label  ID="LabelValor" runat="server" Text=""></asp:Label> </td>
                            <td class="col-1 border border-primary text-center"> <asp:TextBox CssClass="form-control"  AutoPostBack="true" ID="textFunc" OnTextChanged="textFunc_OnTextChanged" runat="server" type="number" Text="" value="5" min="0" max="5" maxlength="1"></asp:TextBox> </td>

                   <asp:UpdatePanel ID="up1" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="false" >        
                        <ContentTemplate>
                            <td > <asp:Label ID="LabelResultadoFinal" runat="server" Text="."></asp:Label></td>            
                        </ContentTemplate>
                         <Triggers>
                <asp:AsyncPostBackTrigger ControlID="textFunc" EventName="TextChanged"/>
             </Triggers>
                    </asp:UpdatePanel>     
                            <td class="col-1 border border-primary text-center"> <input  type="button" id="testButton" data-target='<%#"#accordion" + DataBinder.Eval(Container.DataItem,"ID") %>' data-toggle="collapse" value="+"></input></td>
                        </tr>
                        <tr>
                            <td colspan="5" class="hiddenRow">
                                <div class="accordian-body collapse" id="accordion<%# DataBinder.Eval(Container.DataItem, "Id")%>">   
                                    <textarea class="form-control mt-2 mb-2 col-8" id="Textarea<%# DataBinder.Eval(Container.DataItem, "Id")%>" rows="3"></textarea>
                                </div>
                            </td>
                        </tr>
                    </tbody>

                </ItemTemplate>
                <FooterTemplate>
                </table>
                </FooterTemplate>
            </asp:Repeater>

C#:

 ToolBOX.BLL.Relatorio.RelatorioLigacaoBO relatorioSelecionado;     
 protected void Page_Load(object sender, EventArgs e)
    {

        if (!Page.IsPostBack)
        {
            relatorioSelecionado = new ToolBOX.BLL.Relatorio.RelatorioLigacaoBO();
             RepeaterItem.DataSource = relatorioSelecionado.ObterItensPorCategoria(1);
            RepeaterItem.DataBind();

       }

 protected void RepeaterItem_ItemDataBound(object sender, RepeaterItemEventArgs e)
    {
        if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
        {
            ClassAuditoriaItem Item = (ClassAuditoriaItem)e.Item.DataItem;


            Label LabelId = (Label)e.Item.FindControl("LabelId");
            Label LabelNome = (Label)e.Item.FindControl("LabelNome");
            Label LabelValor = (Label)e.Item.FindControl("LabelValor");
            System.Web.UI.HtmlControls.HtmlInputText tx1 = (System.Web.UI.HtmlControls.HtmlInputText)e.Item.FindControl("text1");


            LabelId.Text = Item.Id.ToString();
            LabelNome.Text = Item.Nome;
            LabelValor.Text = Item.Valor.ToString();

        }
    }

 protected void textFunc_OnTextChanged(object sender, EventArgs e)
    {
        TextBox TextBoxNota = ((TextBox)(sender));

        RepeaterItem rp1 = ((RepeaterItem)(TextBoxNota.NamingContainer));


        Label LabelValor = (Label)rp1.FindControl("LabelValor");
        Label LabelResultadoFinal = (Label)rp1.FindControl("LabelResultadoFinal");

        LabelResultadoFinal.Text =  Convert.ToString((Convert.ToDouble(LabelValor.Text) / 5) * Convert.ToDouble(TextBoxNota.Text));



    }

最后,calc可以工作,但它不会替换原始字段。它会在顶部的posicion页面上添加新字段。

Here what is heppening

提前感谢您的关注。

0 个答案:

没有答案