2012-05-04 5 views
2

page .aspx quelque chose comme çacomment insérer/éditer les valeurs des répéteurs dynamiquement?

<form id="Form1" runat="server"> 
<asp:Repeater ID="Repeater1" runat="server"> 
    <HeaderTemplate> 
      <table border="0" width="600px" cellpadding="2" cellspacing="1" style="border: 1px solid maroon;"> 
     <tr bgcolor="maroon"> 
      <th> Subject_Id </th> 
      <th> Subject_Name </th> 
      <th> Fill_Marks </th> 
     </tr> 
</HeaderTemplate> 

<ItemTemplate> 
    <tr> 
     <td width="100"> 
       <asp:TextBox ID="Subject_Id" runat="Server" Text='<%#Eval("Subject_Id")%>'></asp:TextBox> 
     </td> 
     <td> 
       <asp:TextBox ID="Subject_Name" runat="Server" Text='<%#Eval("Subject_Name")%>'></asp:TextBox> 
     </td> 
     <td> 
       <asp:TextBox ID="Marks" runat="server"></asp:TextBox> 
     </td> 
    </tr> 
</ItemTemplate> 

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

    <asp:Button ID="btnInsert" runat="server" onclick="btnInsert_Click" Text="Insert" CommandArgument="" CommandName=""/> 
    <asp:Button ID="btnUpdate" runat="server" onclick="btnUpdate_Click" Text="Update" CommandArgument="" CommandName=""/>  

    </form> 

C# - Code de derrière ...

protected void btnInsert_Click(object sender, EventArgs e) 
    { 
    cn = new SqlConnection(ConfigurationManager.ConnectionStrings["DbConnect"].ConnectionString); 
    cn.Open(); 

    foreach (RepeaterItem item in Repeater1.Items) 
    { 
     TextBox Subject_Id = (TextBox)item.FindControl("Subject_Id"); 
     TextBox Subject_Name = (TextBox)item.FindControl("Subject_Name"); 
     TextBox Marks = (TextBox)item.FindControl("Marks"); 

     SqlCommand cmd = new SqlCommand("Insert into result VALUES (id='"[email protected]_Id+"',name='"[email protected]_Name+"',marks='"[email protected]+"')", cn); 

     Repeater1.DataSource = cmd.ExecuteReader(); 
     Repeater1.DataBind(); 

     cn.Close(); 
     cmd.Connection.Close(); 
     cmd.Connection.Dispose(); 
    } 
} 

Maintenant, je veux insérer ces données dans le tableau ci-dessous .....

table_résultats

id varchar(10) 
name varchar(20) 
marks varchar(3) 

comment puis-je effectuer une fonction d'insertion et de mise à jour pour récupérer des données de la base de données ... avec un moyen facile? ? merci ...

Répondre

0

Mettre en oeuvre la fonction btnInsert_Click avec les éléments suivants

** modifié selon votre nouvelle fonctionIl est toujours préférable de déplacer les codes de remplissage de la base de données et de la vue grille vers des fonctions distinctes, de sorte qu'il soit facile de répéter les actions sur les clics sur les boutons.

+0

ray - j'implémente votre guidence mais toujours obtenir l'erreur .... ** ma question est éditée ** vous pouvez voir mes mises à jour comme ci-dessus .... si possible me donner solutioon ... merci pour la réponse rapide – mack28

0

insérer une propriété dans vos balises de bouton: CommandArgument = "" CommandName = ""

Repeater1.ItemCommand +=new RepeaterCommandEventHandler(Repeater1_ItemCommand); 

Créer une fonction nommée Repeater1_ItemCommand protected void (source objet, RepeaterCommandEventArgs e) {un code vous vous voulez écrire .........}

+0

Deve - ne fonctionne pas pour moi ... pouvez-vous me donner un exemple de code encore je suis confronté à des problèmes en ce qui concerne ce ... – mack28

+0

i ma question ... edited vous pouvez voir cela et si possible me donner une solution ... merci – mack28

0
Dim permissionList As New List(Of OPASWCFApp.PROJECT_NOTE_CONTACT_MAP) 
    For Each rItem As RepeaterItem In rptProducts.Items 
    Dim qty1 As Integer 
    Dim qty2 As Integer 
    Dim hdnvalue As Integer 
    Dim txtBox1 As TextBox = DirectCast(rItem.FindControl("numAdmin1"), TextBox) 
    Dim txtBox2 As TextBox = DirectCast(rItem.FindControl("numAdmin2"), TextBox) 
    Dim hdnf As HiddenField = DirectCast(rItem.FindControl("hdnContacttype"), HiddenField) 
    qty1 = Convert.ToInt32(txtBox1.Text) 
    qty2 = Convert.ToInt32(txtBox2.Text) 
    hdnvalue = Convert.ToInt32(hdnf.Value) 

    If qty1 > 0 Or qty2 > 0 Then 
     Dim _d As OPASWCFApp.PROJECT_NOTE_CONTACT_MAP = 
        New OPASWCFApp.PROJECT_NOTE_CONTACT_MAP() 
     _d.PROJECT_NOTE_CONTACT_MAP_CONTACT_TYPE_ID = hdnvalue 
     _d.PROJECT_NOTE_CONTACT_MAP_DURATION = CInt((qty1 * 60) + qty2) 
     _d.PROJECT_NOTE_CONTACT_MAP_CONTACT_TYPE_ID = hdnvalue 
     permissionList.Add(_d) 
    End If 
Next 
ProcessDataResult.ContactMap = permissionList.ToArray() 
+0

Ne me ressemble pas 'C#'! –

Questions connexes