[英]How To Use Update Function In Repeater Control Dynamically?
我有1个转发器,并绑定了Assign_Subjects表中的subjectid和subjectname ...,并放置了1个文本框模板以插入在每个subject @btnInsert_Click事件中获得的标记,并且我已经按如下所示编写了插入代码,并且工作正常...并且结果表位于我想随主题插入标记...
我想更新标记,即在中继器控件中插入(在文本框-MarksObtained列中)...我将按钮用作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>
背后的代码-C#
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)
现在的问题是我如何通过中继器进行更新??? 解释与更多的应用程序的代码...谢谢
您的中继器内的按钮应该看起来像这样.....
<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>
然后使用Repeater的ItemCommand事件捕获由Repeater控件生成的事件
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..
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.