1
我使用ModalPopUpExtender
来显示GridView
中某个项目的详细信息,在编辑Popup中的行后,我似乎无法使其工作,回到页面,它也将随着任何数据库访问而改变。使用ModalPopupExtender编辑GridView行值并在GridView中保存值
ASPX形式
<asp:GridView runat="server" ID="gridview" CssClass="table-hover" AutoGenerateColumns="true" HeaderStyle-BackColor="CornflowerBlue" BackColor="White" BorderWidth="5" BorderColor="CornflowerBlue" OnSelectedIndexChanged="gridview_SelectedIndexChanged" CellPadding="10"
CellSpacing="0" Width="100%">
<HeaderStyle BackColor="CornflowerBlue"></HeaderStyle>
<Columns>
<asp:TemplateField ItemStyle-Width="30px" HeaderText="Details">
<ItemTemplate>
<asp:ImageButton ID="lnkEdit" runat="server" ImageUrl="~/Images/Icons/Modify.png" OnClick="Edit" />
<%--<asp:LinkButton ID="lnkEdit" runat="server" Text="Edit" OnClick="Edit"></asp:LinkButton>--%>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:Panel ID="pnlAddEdit" runat="server" CssClass="modal-content modal-body">
<asp:Label Font-Bold ="true" runat="server" ID ="lblDetails" Text="Details"></asp:Label>
<br />
<table align ="center">
<tr>
<td>
<asp:Label ID="label1" runat="server" Text ="Type"></asp:Label>
</td>
<td>
<asp:TextBox ID ="typetxt" CssClass="form-control" runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td>
<asp:Label ID="label2" runat="server" Text ="Model"></asp:Label>
</td>
<td>
<asp:TextBox ID ="modeltxt" CssClass="form-control" runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td>
<asp:Label ID="label3" runat="server" Text ="Quantity"></asp:Label>
</td>
<td>
<asp:TextBox ID ="quantxt" CssClass="form-control" runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td>
<asp:Label ID="label4" runat="server" Text ="Unit"></asp:Label>
</td>
<td>
<asp:TextBox ID ="txtunit" CssClass="form-control" runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td>
<asp:Label ID="label5" runat="server" Text ="Description"></asp:Label>
</td>
<td>
<asp:TextBox ID ="descritxt" CssClass="form-control" runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td>
<asp:Label ID="label6" runat="server" Text ="Remarks"></asp:Label>
</td>
<td>
<asp:TextBox ID ="remarkstxt" CssClass="form-control" runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td>
<asp:Label ID="label7" runat="server" Text ="Date"></asp:Label>
</td>
<td>
<asp:TextBox ID ="target" CssClass="form-control" runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td>
<asp:Button ID ="btnSave" runat="server" Text="Save" OnClick="Save" />
</td>
<td>
<asp:Button ID ="btnCancel" runat="server" Text="Cancel" OnClientClick ="return Hidepopup()" />
</td>
</tr>
</table>
</asp:Panel>
<asp:LinkButton ID="lnkFake" runat="server"></asp:LinkButton>
<cc1:ModalPopupExtender ID="modal" runat="server" DropShadow="true" PopupControlID="pnlAddEdit" TargetControlID="lnkFake" BackgroundCssClass="modalBackground">
</cc1:ModalPopupExtender>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID ="gridview" />
<asp:AsyncPostBackTrigger ControlID ="btnSave" />
</Triggers>
</asp:UpdatePanel>
</div>
aspx.cs形式
protected void Edit(object sender, EventArgs e)
{
using (GridViewRow row = (GridViewRow)((ImageButton)sender).Parent.Parent)
{
typetxt.Text = row.Cells[1].Text;
modeltxt.Text = row.Cells[2].Text;
quantxt.Text = row.Cells[3].Text;
txtunit.Text = row.Cells[4].Text;
descritxt.Text = row.Cells[5].Text;
remarkstxt.Text = row.Cells[6].Text;
target.Text = row.Cells[7].Text;
modal.Show();
}
}
protected void Save(object sender, EventArgs e)
{
//what will i put here
}
喜!你能给我一个更具体的答案吗?我尝试输入其他方法,但它不显示。谢谢! –
@JediAblaza可以请你分享你的数据库表设计? – Kusum
嗨,我没有数据库设计,这种形式实际上就像一个“添加到购物车”系统,然后当用户输入错误时,他可以编辑表,即使它没有保存在数据库中 –