使用c#ASP.NET编辑图像并从GridView中删除行
本文关键字:GridView 删除行 图像 c#ASP NET 编辑 使用 | 更新日期: 2023-09-27 18:00:12
我需要使用C# ASP.NET
来GridView
的Edit
和Delete
Row
。
我试过一次,可以在Edit Button
上的click
之后的TextBox
中填充数据,但我也有一个Image
到Edit
,我需要的是用户何时在Edit Image
上使用click
,Image
也将Display
放在Edit
的适当位置。如果是Delete
,我在Anchor Tag
中有Image
,我需要从GridView
传递哪个事件,并在代码隐藏页中定义,以便我可以进行操作。
faq.aspx:
<div class="col-md-6">
<label for="question" accesskey="T"><span class="required">*</span> Question</label>
<asp:TextBox ID="TextBox1" runat="server" size="30" value="" name="question" ></asp:TextBox>
<div id="noty" style="display:none;" runat="server"></div>
<label for="answerswer" accesskey="A"><span class="required">*</span> Answer</label>
<asp:TextBox ID="TextBox2" runat="server" size="30" value="" name="answerswer" ></asp:TextBox>
<div id="Div1" style="display:none;" runat="server"></div>
</div>
<div class="col-md-6 bannerimagefile">
<label for="insertimage" accesskey="B"><span class="required">*</span> Insert Image</label>
<asp:FileUpload runat="server" class="filestyle" data-size="lg" name="insertimage" id="FileUpload1" onchange="previewFile()" />
<label for="bannerimage" accesskey="V"><span class="required">*</span> View Image</label>
<div style="padding-bottom:10px;">
<asp:Image ID="Image3" runat="server" border="0" name="bannerimage" style="width:70px; height:70px;" />
</div>
<div class="clear"></div>
<asp:Button ID="Button1" runat="server" Text="Submit" class="submit"
onclick="Button1_Click" />
</div>
</div>
</div>
</div>
<!--end_1st_faq_add_div-->
<!--2nd_list_banner_view_div-->
<div class="widget-area">
<h2 class="widget-title"><strong>FAQ List</strong></h2><asp:HiddenField ID="HiddenField1" runat="server" />
<div class="streaming-table margin-top-zero padding-top-zero">
<div class="table-responsive">
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false"
Width="100%" CssClass="table table-striped table-bordered margin-top-zero"
onselectedindexchanged="GridView1_SelectedIndexChanged">
<Columns>
<asp:TemplateField HeaderText="Sl No">
<ItemTemplate>
<asp:Label ID="faqid" runat="server" Text='<%#Eval("FAQ_ID") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Question" >
<ItemTemplate>
<asp:Label ID="question" runat="server" Text='<%#Eval("Question") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Answer" >
<ItemTemplate>
<asp:Label ID="answerswer" runat="server" Text='<%#Eval("Answer") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Image" >
<ItemTemplate>
<asp:Image ID="Image1" runat="server" border="0" name="bannerimage" style="width:70px; height:70px;" ImageUrl='<%# "/Upload/" + Convert.ToString(Eval("Image")) %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Action" >
<ItemTemplate>
<a href="" data-toggle="tooltip" title="" class="btn btn-xs btn-success" data-original-title="Edit" id="editbtn" ><i class="fa fa-edit"></i></a>
<a href=" " data-toggle="tooltip" title="" class="btn btn-xs btn-danger" data-original-title="Delete"><i class="fa fa-times"></i>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
faq.aspx.cs:
protected void GridView1_SelectedIndexChanged(object sender, GridViewSelectEventArgs e)
{
int index = Convert.ToInt32(e.NewSelectedIndex);
TextBox1.Text = GridView1.Rows[index].Cells[1].Text;
TextBox2.Text = GridView1.Rows[index].Cells[2].Text;
HiddenField1.Value = GridView1.Rows[index].Cells[0].Text;
Button1.Text = "Update";
}
请帮我解决这个问题。
我看到您在网格视图中只有项目寺庙。因此,我将告诉您两种方法:1) 在网格视图中添加编辑模板,并处理网格视图的OnRowEditing事件。2) 添加一个具有行键的超链接,并链接到另一个页面,在那里您可以像在本页面中所做的那样,通过使用键(主键)预填充数据来设计编辑器
最好使用"entitydataSource"、"linqdateSource"或"sqlDataSource"等现代数据控件,并通过它们绑定网格视图。对所有行使用"itemtemplate"不是一个好方法,而是用"dataSource"填充网格,并使用"itemtemplate"进行删除或编辑按钮。将按钮名称作为commandName和行ID作为commandArgument发送到代码隐藏中的gridViewItemCommand事件。
在GridviewItemcommand_Event中的代码behindin中,switch语句循环通过itemCommands:
int itemID = int.parse(e.commandArgument)
switch(e.commandName)
{
case 'DoEdite' :{//some Code
Viewstate["ID"] = itemID;
break;}
case 'DoDelete' :{//some Code
break;}
}
你有itemID(e.commandArgument),知道点击了哪个按钮(e.commandName)。这样你就可以随心所欲了。在编辑模式下,当您将数据发送到文本框时,使用视图状态或其他集合来保存您的数据ID,因为在编辑之后,更新编辑日期你需要它,