[Resolvido] Evento RowCommand com o Grid dentro de um DataList
Boa Tarde iMasters!
Tenho um DataList com um GridView dentro, no DataList eu recupero as secoes dos meus produtos e no Grid os produtos referentes a secao do datalist, dentro do grid tenho um buttonfield e na acao do button, preciso dar um response.redirect para outra pagina com o id do produto que esta no grid.
parte do codigo:
<asp:DataList ID="DataList_Secoes" runat="server" RepeatDirection="Horizontal" BorderWidth="0px"
RepeatColumns="3" BorderStyle="None" CellPadding="0" OnItemDataBound="DataList_Secoes_ItemDataBound">
<ItemTemplate>
<div class="div_produtos_secao">
<div class="div_produtos_cab_lbl">
<asp:Label ID="Label_Produtos_Secao_Nome" runat="server" CssClass="lbl_produtos_cab"></asp:Label>
</div>
<div class="div_produtos_conteudo_grid">
<asp:GridView ID="GridView_Produtos" runat="server" AutoGenerateColumns="False" EnableModelValidation="True"
ShowHeader="False" Width="304px" OnRowCommand="GridView_Produtos_RowCommand">
<Columns>
<asp:BoundField DataField="prod_nome" />
<asp:ButtonField ButtonType="Image" ImageUrl="~/Images/Produtos/Ico_detalhes.png"
CommandName="Redirect" DataTextField="prod_id" >
<ItemStyle HorizontalAlign="Center" Width="35px" />
</asp:ButtonField>
</Columns>
</asp:GridView>
</div>
<div class="div_produtos_conteudo_simulador">
<asp:HyperLink ID="HyperLink_Produtos_Simulador" runat="server"></asp:HyperLink>
</div>
<div class="div_produtos_conteudo_foto">
<asp:Image ID="Image_Produtos_Secao" runat="server" />
</div>
</div>
</ItemTemplate>
<SeparatorTemplate>
<div class="div_produtos_separa">
</div>
</SeparatorTemplate>
</asp:DataList>
behind:
public void Preenche_DataList(bool status)
{
DataSet ds_sec = ob_prod.Retorna_Secao(status);
DataList_Secoes.DataSource = ds_sec;
DataList_Secoes.DataBind();
}
protected void DataList_Secoes_ItemDataBound(object sender, DataListItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
Label lbl_nome = (Label)e.Item.FindControl("Label_Produtos_Secao_Nome");
Label lbl_desc = (Label)e.Item.FindControl("Label_Produtos_Secao_Desc");
HyperLink hyp_simulador = (HyperLink)e.Item.FindControl("HyperLink_Produtos_Simulador");
Image img_sec = (Image)e.Item.FindControl("Image_Produtos_Secao");
int id = Convert.ToInt32(DataBinder.Eval(e.Item.DataItem, "sec_id"));
string nome = DataBinder.Eval(e.Item.DataItem, "sec_nome").ToString();
string dir_sec = "Conteudo/Secao/";
string img = DataBinder.Eval(e.Item.DataItem, "sec_img").ToString();
lbl_nome.Text = nome;
GridView grv = (GridView)e.Item.FindControl("GridView_Produtos");
DataSet ds_sec_grid = ob_prod.Retorna_Produtos_Sec(id, true);
if (ds_sec_grid.Tables[0].Rows.Count == 0)
{
grv.Visible = false;
}
grv.DataSource = ds_sec_grid;
grv.DataBind();
}
}
protected void GridView_Produtos_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "Redirect")
{
Response.Redirect("~/Produtos_View?=" + "codigo do produto!!!");
}
}
no aguardo, abraço a tds!
Discussão (6)
Carregando comentários...