gpt4 book ai didi

asp.net - 将值绑定(bind)到gridview内的文本框

转载 作者:行者123 更新时间:2023-12-04 05:12:18 28 4
gpt4 key购买 nike

我在将gridview内的字段值绑定(bind)到gridview内的文本框时遇到问题。我打算这样做是为了编辑表格。

我尝试使用 eval 和 bind 来执行此操作,但文本框不会显示值,我完全不知道为什么。

<asp:UpdatePanel runat="server">
<ContentTemplate>
<asp:GridView ID="gvBS" runat="server" AutoGenerateColumns="false" DataKeyNames="ID" SkinID="gvWithoutWidth">
<Columns>
<asp:CommandField ShowEditButton="true" EditImageUrl="~/Images/GridView/gv_edit.png" ButtonType="Image"
CancelImageUrl="~/Images/GridView/gv_cancel.png" UpdateImageUrl="~/Images/GridView/gv_update.png"/>
<asp:TemplateField HeaderText="Sollmonat" HeaderStyle-HorizontalAlign="Left">
<EditItemTemplate>
<asp:TextBox ID="tbSollMonat" runat="server" Text='<%# Eval("SollMonat") %>'></asp:TextBox>
<asp:RequiredFieldValidator ID="rfvSollMonat" ValidationGroup="Update" runat="server"
ControlToValidate="tbSollMonat" ErrorMessage="Bitte Sollmonat (dd.mm.yyyy) angeben"
SetFocusOnError="true">*</asp:RequiredFieldValidator>
<asp:RegularExpressionValidator ID="revSollMonat" ValidationGroup="Update" runat="server"
ValidationExpression="^\d+$" ControlToValidate="tbSollMonat">*</asp:RegularExpressionValidator>
</EditItemTemplate>
<ItemTemplate>
<%# Eval("SollMonat")%>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>

问题是它在 ItemTemplate 内工作正常,但在 EditItemTemplate 元素内却不行。真的不知道问题出在哪里。

后面的代码:
Sub gvBS_RowEditing(ByVal sender As Object, ByVal e As GridViewEditEventArgs) Handles gvBS.RowEditing
gvBS.EditIndex = e.NewEditIndex
End Sub

Sub gvBS_RowCancelingEdit() Handles gvBS.RowCancelingEdit
Me.gvBS.EditIndex = -1
gvBS_DataBind()
End Sub

最佳答案

我假设 GridView进入从不编辑模式,因为您没有处理 RowEditing事件或你没有DataBind设置后gvBS.EditIndex = e.NewEditIndex; .

<asp:GridView 
OnRowEditing="gvBS_RowEditing" OnRowCancelingEdit="gvBS_RowCancelingEdit"
ID="gvBS" runat="server" AutoGenerateColumns="false"
DataKeyNames="ID" SkinID="gvWithoutWidth">

代码隐藏( BindGrid 是数据绑定(bind)网格的方法):
protected void gvBS_RowEditing(object sender, GridViewEditEventArgs e)
{
gvBS.EditIndex = e.NewEditIndex;
BindGrid();
}

protected void gvBS_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
gvBS.EditIndex = -1;
BindGrid();
}

您还应该记住仅在第一次加载时对其进行数据绑定(bind),而不是在 ViewState 时连续回发时进行数据绑定(bind)。已启用(默认)。因此您可以查看页面的 IsPostBack属性(property):
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindGrid();
}
}

关于asp.net - 将值绑定(bind)到gridview内的文本框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14767824/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com