2009-09-10 8 views
1

Dans ma requête SQL, je récupère 3 chaînes et la 3ème chaîne a une URL. J'ai créé 2 templatefield contenant des étiquettes et un autre modèle avec une image. Maintenant, je veux définir les valeurs aux deux étiquettes et voir l'image en définissant ImageUrl et afficher toutes les lignes qui sortent de la requête SQL.comment définir les données de la requête sql dans le champ du modèle gridview

protected void Page_Load(object sender, EventArgs e) 
{ 
    //if (IsPostBack == false) 
    //{ 
    // grdMaterial.DataBind(); 
    //} 
    try 
    { 
     matType = int.Parse(Session["mattype"].ToString()); 
     colorId = int.Parse(Session["color"].ToString()); 
     matStyleId = int.Parse(Session["matstyle"].ToString()); 
     try 
     { 
      matContent = Session["matContent"].ToString(); 
     } 
     catch 
     { 
      panAval.Visible = true; 
      panNew.Visible = false; 
      dtab = new DBHELPER().getdataTable("SELECT [item_Id],[mat_Content],[mat_Image] FROM [item] WHERE [mat_Content]='" + matContent + "'"); 
      //grdMaterial.DataSource = dtab; 
      //grdMaterial.DataBind(); 



    } 
    catch (Exception ee) 
    { 
    } 

} 

protected void grdMaterial_Load(object sender, EventArgs e) 
{ 
    try 
    { 
     for (int i = 0; i < dtab.Rows.Count; i++) 
     { 
      //TextBox x = (TextBox)GridViewCarrinho.Rows[row.RowIndex].Cells[2].FindControl("txtQuantidade"); 


      Label itemId = (Label)grdMaterial.FindControl("lblItemId"); 
      itemId.Text = dtab.Rows[i]["item_Id"].ToString(); 

      Label matContent = (Label)grdMaterial.FindControl("lblItemName"); 
      matContent.Text = dtab.Rows[i]["mat_Content"].ToString(); 

      Image itemImage = (Image)grdMaterial.FindControl("imgItemImage"); 
      itemImage.ImageUrl = dtab.Rows[i]["mat_Image"].ToString(); 

     } 
    } 
    catch (Exception ee) 
    { 
    } 
} 
+2

Wow. Vous avez posté la question réelle dans le titre. Le titre est utilisé pour décrire le problème en quelques mots. Voyez comment les autres posent des questions. – shahkalpesh

Répondre

2

Cet événement: grdMaterial_Load ne semble pas nécessaire.

Vous pouvez simplement lier votre source de données à votre grille de données et simplement personnaliser la grille de données pour obtenir l'image, et remplir les étiquettes.

lier simplement vos colonnes Itemid et ITEMNAME, puis créer un champ de modèle pour l'image comme indiqué ci-dessous ...

<asp:GridView ID="grdMaterial" runat="server" DataKeyNames="item_Id" AutoGenerateColumns="False"> 
    <Columns> 
     <asp:BoundField DataField="item_Id" HeaderText="Item Id" /> 
     <asp:BoundField DataField="mat_Content" HeaderText="Item Name" /> 
     <asp:TemplateField ShowHeader="false"> 
      <ItemTemplate> 
       <asp:Image ID="imgItemImage" runat="server" ImageUrl="<%# DataBinder.Eval(Container.DataItem, "mat_Image")) %>" /> 
      </ItemTemplate> 
     </asp:TemplateField> 
    </Columns> 
</asp:GridView> 
Questions connexes