2014-07-08 78 views
0

我有一个aspx页面和web用户控件,看起来像这样:Web用户控件的事件触发的aspx页面加载事件之后

<div id="mdlProduto" class="modal fade" tabindex="-1"> 
<div class="modal-dialog modal-lg"> 
    <asp:UpdatePanel runat="server" ID="updProduto" UpdateMode="Conditional"> 
     <ContentTemplate> 
      <div class="modal-content"> 
       <div class="modal-header"> 
        <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> 
        <h3>Adicionar/Editar Produto</h3> 
       </div> 

       <div class="modal-body"> 
        <div id="filtros"> 
         <div class="form-group"> 
          <div class="row"> 
           <div class="col-lg-3"> 
            <label>Código:</label> 
            <input id="txtProdutoCodigo" runat="server" class="form-control" 
             placeholder="Filtre por Código" title="Insira o código do produto" onkeypress="return SomenteNumero(event);" tabindex="6" maxlength="5" /> 
           </div> 
           <div class="col-lg-5"> 
            <label>Descrição:</label> 
            <input id="txtProdutoDescricao" runat="server" class="form-control" 
             placeholder="Filtre pela Descrição" title="Insira o nome do produto" tabindex="6" /> 
           </div> 
           <br /> 
           <div class="col-lg-4"> 
            <asp:LinkButton 
             ID="btnPesquisarProduto" 
             runat="server" 
             CssClass="btn btn-info" 
             ToolTip="Você pode pesquisar, clicando aqui!" 
             OnClick="btnPesquisarProduto_Click" 
             Text="<span class='glyphicon glyphicon-search'></span> Pesquisar" 
             TabIndex="10"> 
            </asp:LinkButton> 
           </div> 
          </div> 
         </div> 
        </div> 
        <div id="grid"> 
         <div class="form-group"> 
          <div class="row"> 
           <div class="col-lg-12"> 
            <asp:GridView 
             ID="gvProduto" 
             runat="Server" 
             AllowPaging="true" 
             AllowSorting="true" 
             CssClass="table table-bordered table-hover table-condensed table-responsive" 
             CellSpacing="-1" 
             GridLines="None" 
             PageSize="5" 
             AutoGenerateColumns="false" 
             EnableViewState="True" 
             OnRowCommand="gvProduto_RowCommand"> 
             <Columns> 
              <asp:TemplateField ItemStyle-Width="15px"> 
               <ItemTemplate> 
                <asp:LinkButton ID="lnkSelecionar" runat="server" CssClass="glyphicon glyphicon-eye-open" CommandName="Selecionar" CommandArgument='<%# Container.DataItemIndex.ToString() + "," + Eval("prodID")%>' /> 
               </ItemTemplate> 
              </asp:TemplateField> 
              <asp:BoundField DataField="prodID" HeaderText="Código" ItemStyle-Width="15px" /> 
              <asp:BoundField DataField="prodDescricao" HeaderText="Descrição" /> 
              <asp:BoundField DataField="prodcatDescricao" HeaderText="Categoria" ItemStyle-Width="180px" /> 
              <asp:BoundField DataField="prodmarDescricao" HeaderText="Marca" ItemStyle-Width="180px" /> 
              <asp:BoundField DataField="prodValorVenda" HeaderText="Valor Venda" ItemStyle-Width="100px" /> 
              <asp:BoundField DataField="prodSaldo" HeaderText="Saldo" ItemStyle-Width="80px" /> 
             </Columns> 
            </asp:GridView> 
           </div> 
          </div> 
         </div> 
        </div> 
        <div id="demaisInformacoes" runat="server"> 
         <div class="form-group"> 
          <div class="row"> 
           <div class="col-lg-3"> 
            <label>Valor de Venda:</label> 
            <input id="txtValorVenda" runat="server" class="form-control currency" 
             placeholder="Valor Final de Venda" title="Insira o valor final de venda do produto" tabindex="6" /> 
           </div> 
           <div class="col-md-2"> 
            <label>Quantidade:</label> 
            <input id="txtQtdProduto" runat="server" class="form-control" 
             placeholder="Quantidade do Produto" title="Insira a quantidade do produto" onkeypress="return SomenteNumero(event);" tabindex="6" maxlength="5" /> 
           </div> 
          </div> 
         </div> 
         <div class="form-group"> 
          <div class="row"> 
           <div class="col-lg-12"> 
            <label>Observações:</label> 
            <textarea id="txtObservacoes" runat="server" class="span6 form-control" rows="3" placeholder="Observações do Item"></textarea> 
           </div> 
          </div> 
         </div> 
        </div> 
       </div> 

       <div class="modal-footer"> 
        <asp:Button ID="btnAtualizar" runat="server" ClientIDMode="Static" CssClass="btn btn-primary" Text="Atualizar" 
         ToolTip="Para adicionar/editar um produto, clique aqui!" UseSubmitBehavior="true" 
         OnClick="btnAtualizar_Click" TabIndex="16" /> 
        <button type="button" data-dismiss="modal" class="btn" title="Clique aqui para fechar esta aba!" tabindex="17">Fechar</button> 
       </div> 
      </div> 
      <input type="hidden" runat="server" id="hdfCodigoProdutoSelecionado" /> 
     </ContentTemplate> 
     <Triggers> 
      <asp:AsyncPostBackTrigger ControlID="gvProduto" /> 
     </Triggers> 
    </asp:UpdatePanel> 
</div> 

我的问题是:当我点击btnAtualizar按钮,它首先触发aspx的PageLoad事件,然后在webusercontrol.cs中点击事件。我需要做的是扭转这一点。首先是WebUserControl事件,然后是aspx的PageLoad。那可能吗?

我已经尝试了一些东西,但仍然无法正常工作。我感谢你的帮助

回答

0

我发现这种情况的解决方案,修改为:

  • 我创建了WebUserControl的事件处理程序:

    公共事件的EventHandler btnAtualizar;

    protected void btnAtualizar_Click(object sender, EventArgs e) 
    { 
        if (this.btnAtualizar != null) 
        { 
         DataRow dr = (Session["ProdutoPesquisado"] as DataTable).Select("prodID=" + hdfCodigoProdutoSelecionado.Value.ToInt()).FirstOrDefault(); 
         Session["ProdutoSelecionado"] = new ItensOrcamento { Produto = new Produto 
                      { 
                       Id = hdfCodigoProdutoSelecionado.Value.ToInt(), 
                       Descricao = dr["prodDescricao"].ToString(), 
                       Categoria = new Categoria { Descricao = dr["prodcatDescricao"].ToString() }, 
                       Marca = new Marca { Descricao = dr["prodmarDescricao"].ToString() } 
                      }, 
                      Valor = txtValorVenda.Value.ToDecimal(), 
                      Quantidade = txtQtdProduto.Value.ToInt(), 
                      Observacao = txtObservacoes.Value }; 
         this.btnAtualizar(this, new EventArgs()); 
        } 
    } 
    
  • ,这ASPX页面上:

    protected void Page_Init(object sender, EventArgs e) { wucProduto.btnAtualizar += new EventHandler(wucProduto_btnAtualizar); }

    private void wucProduto_btnAtualizar(object sender, EventArgs e) 
    { 
        (Session["ProdutosOrcamento"] as List<ItensOrcamento>).Add(Session["ProdutoSelecionado"] as ItensOrcamento); 
        CarregarProdutos(); 
    } 
    

我希望这可以帮助别人。

相关问题