2012-05-04 1 views
0

у меня есть 1 ретранслятор и связывают subjectid и Subjectname из Assign_Subjects таблицы ... и положить 1 TextBox шаблон для вставки меток, полученных в каждом из субъектов @btnInsert_Click событие, и я уже написал мой код вставки, как показано ниже, и он работает отлично ... и результат таблица, в которой я хочу, чтобы вставить метки вместе с предметами ...Как использовать функцию обновления в режиме репитера динамически?

Я хочу обновить метки, т.е. вставленные (в текстовом поле - столбец MarksObtained) в рамках управления ретранслятором .. .i используется кнопка btnUpdate для редактирования текстовых полей ....

.aspx страница

<div> 
<table border="0" width="600px" cellpadding="2" cellspacing="1" style="border: 1px solid maroon;"> 
      <asp:Repeater ID="Repeater1" runat="server"> 
       <HeaderTemplate> 
        <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="txtSubjectId" runat="Server" Text='<%#Eval("Subject_Id")%>'></asp:TextBox> 
         </td> 
         <td> 
          <asp:TextBox ID="txtSubjectName" runat="Server" Text='<%#Eval("Subject_Name")%>'></asp:TextBox> 
         </td> 
         <td> 
          <asp:TextBox ID="txtMarks" runat="server" ></asp:TextBox> 
         </td> 
        </tr> 
       </ItemTemplate> 
      </asp:Repeater> 
     </table> 
     <asp:Button ID="btnInsert" runat="server" OnClick="btnInsert_Click" Text="Insert" /> 
     **<asp:Button ID="btnUpdate" runat="server" OnClick="btnUpdate_Click" Text="Insert" />** 
    </div> 

код позади - с #

protected void btnInsert_Click(object sender, EventArgs e) 
    { 
     foreach (RepeaterItem repeaterItem in Repeater1.Items) 
     { 
      string subjectId = (repeaterItem.FindControl("txtSubjectId") as TextBox).Text.Trim(); 
      string subjectName = (repeaterItem.FindControl("txtSubjectName") as TextBox).Text.Trim(); 
      string marks = (repeaterItem.FindControl("txtMarks") as TextBox).Text.Trim(); 

      this.SaveData(subjectId, subjectName, marks); 
     } 
    } 

private void SaveData(string subjectId, string subjectName, string marks) 
     { 
      cn = new SqlConnection(ConfigurationManager.ConnectionStrings["DbConnect"].ConnectionString); 
      cn.Open(); 

      SqlCommand cmd = new SqlCommand("Insert into result(id,name,marks) values('"+subjectId+"','"+subjectName+"','"+marks+"')", cn); 

      Repeater1.DataSource = cmd.ExecuteReader(); 

      //Display a popup which indicates that the record was successfully inserted 

      Page.ClientScript.RegisterClientScriptBlock(typeof(Page), "Script", "alert('Successfuly Inserted. !!');", true); 

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

Вставить в результат таблицы

id  varchar(20) 
name varchar(20) 
marks varchar(20) 

Теперь вопрос в том, как я могу обновить через ретрансляторы ??? объяснил с кодом более appriciated ... спасибо

+0

Во-первых, вы должны использовать Parameters для создания вашего SqlCommand, иначе вы оставите себя открытым для SQL-инъекций. Во-вторых - какая именно ошибка вы получаете? –

+0

Я смущен тем, что вы пытаетесь выполнить. У вас есть ретранслятор, который, как я предполагаю, вы заполняете данными. Затем, когда вы нажимаете «Вставить», каждый цикл повторяется в репитере и вводит INSERT в вашу базу данных? Я думаю, вместо этого вы, вероятно, хотите разместить текстовые поля под ретранслятором, чтобы добавить новый элемент в список? –

+0

kevin main - я обновил свой вопрос ... вы можете увидеть его ... – mack28

ответ

0

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

<td> 
    <asp:ImageButton ID="btnSave" runat="server" 
     ImageUrl="~/images/save.png" ToolTip="click to save record" 
     CommandName="SaveData" 
     OnClientClick="return confirm('Conform message before saving')" /> 
</td> 

затем, чтобы захватить события, генерируемое ItemCommand случае управление повторителем использование повторителя

protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e) 
{ 
    // note that this is the command we assign to save button. 
    // we use it here to capture which button was clicked. 
    if (e.CommandName == "SaveData") 
    { 
     TextBox txtFirstName = e.Item.FindControl("txtFirstName") as TextBox; 
     string fname= txtFirstName.Text; 

     // do somethig with your date here.. 

    } 
} 

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

  • Нет связанных вопросов^_^