2012-05-04 4 views
2

.aspx страница что-то вроде этогоКак вставлять/редактировать значения из репитеров динамически?

<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# - код позади ...

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(); 
    } 
} 

Теперь я хочу, чтобы вставить эти данные в следующую таблицу .....

result_table

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

как я могу выполнить функцию вставки и обновления для извлечения данных из базы данных ... с помощью простого способа? ? спасибо ...

ответ

0

Реализовать btnInsert_Click функцию со следующим

** отредактированный в соответствии с вашей новой функции

protected void btnInsert_Click(object sender, EventArgs e) 
    { 
    String connectionString = ConfigurationManager.ConnectionStrings["DbConnect"].ConnectionString; 
    String queryString = ""; 
    using (SqlConnection connection = new SqlConnection(connectionString)) 
    { 
     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"); 

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

     SqlCommand command = new SqlCommand(queryString, connection); 

     // execute the query to update the database 
     cmd.ExecuteNonQuery(); 
     } 
    } 
    //call the function to load the gridview if it is lost on postback. 
    } 

Всегда лучше перемещать коды заполнения базы данных и сетки на отдельные функции, чтобы было легко повторять действия при нажатии кнопки.

+0

ray - я реализую вашу ответственность, но все еще получаю ошибку .... ** мой вопрос редактируется ** вы можете видеть мои обновления, как указано выше .... если возможно, дайте мне solutioon ... спасибо за быстрый ответ – mack28

0

вставить некоторое свойство в вашей кнопки теги: CommandArgument = "" Имя_команды = ""

Repeater1.ItemCommand +=new RepeaterCommandEventHandler(Repeater1_ItemCommand); 

Создайте функцию с именем защищены недействительным Repeater1_ItemCommand (исходный объект, RepeaterCommandEventArgs е) {некоторый код, который вы хочу написать .........}

+0

Деве - не работает для меня ... Вы можете дать мне пример кода до сих пор я столкнулся проблемы относительно этого ... – mack28

+0

я отредактировал мой вопрос ... вы можете увидеть, что если возможно дать мне решение ... спасибо – 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

Звучит не как 'C#' для меня! –

Смежные вопросы