【发布时间】:2014-10-13 20:49:38
【问题描述】:
我有一个使用 SQL Server 2008 绑定到 SQLDataSource 的 ASP.Net 4.0 FormView。默认情况下它以编辑模式打开,并且绑定和更新工作正常,直到今天我又添加了一个 RadioButtonList 和 TextBox 到它。现在新的 RadioButtonList 和 TextBox 可以正确显示数据,但是当我更新时,它们的数据不会添加到数据库中。其他一切仍然像以前一样工作。我确定我在做一些愚蠢的事情,但我正处于时间紧缩状态,看不到它。我很想发布我的 HTML,但即使在代码块中,每次我尝试提交这个问题时,我都会收到一条错误消息(“发生错误)。所以,我可以告诉你:有不止一个页面上的 RadioButtonList 和多个 TextBox。今天之前页面上的 RadioButtonLists 和 TextBoxes 工作正常。它们显示数据库中的数据,并将数据保存到数据库中。新的 RadioButtonList 不同之处在于它具有 OnSelectedIndexChanged事件,这会导致新的 TextBox 值发生变化。新的 TextBox 使用格式将日期显示为 MM/dd/yyyy,这与其他仅显示数据库中的数据的 TextBox 不同。除此之外,我看不到任何差异。
这是后面的代码(rblComplete 和 tbDateCompleted 是新控件;fvEmpInfo 是 FormView):
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;</code>
namespace EAS.telecom
{
public partial class NewRolloutDetails : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void UpdateFormView(object sender, FormViewUpdatedEventArgs e)
{
fvEmpInfo.DataBind();
lbResult.Visible = true;
}
protected void setDateCompleted(object sender, EventArgs e)
{
foreach (Control control in fvEmpInfo.Controls)
{
RadioButtonList rblCompleted = (RadioButtonList)control.FindControl("rblComplete");
TextBox tbDateCompleted = (TextBox)control.FindControl("tbDateCompleted");
if (rblCompleted.SelectedValue == "True")
tbDateCompleted.Text = DateTime.Today.ToShortDateString();
else
tbDateCompleted.Text = "";
}
}
}
}
【问题讨论】:
-
您是否使用调试器单步执行代码..?还有你如何处理
IsPostBack() or!IsPostBack`fvEmpInfo最初填充在哪里......? -
我上面发布的是所有的服务器端代码。在页面加载期间我什么也没做; FormView 处理客户端的所有绑定。
标签: c# asp.net data-binding formview