у меня есть 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 ... спасибо
Во-первых, вы должны использовать Parameters для создания вашего SqlCommand, иначе вы оставите себя открытым для SQL-инъекций. Во-вторых - какая именно ошибка вы получаете? –
Я смущен тем, что вы пытаетесь выполнить. У вас есть ретранслятор, который, как я предполагаю, вы заполняете данными. Затем, когда вы нажимаете «Вставить», каждый цикл повторяется в репитере и вводит INSERT в вашу базу данных? Я думаю, вместо этого вы, вероятно, хотите разместить текстовые поля под ретранслятором, чтобы добавить новый элемент в список? –
kevin main - я обновил свой вопрос ... вы можете увидеть его ... – mack28