如何更新FormView?
|
我有FormView:
<asp:FormView ID=\"fvReport\" runat=\"server\" AllowPaging=\"false\"
OnModeChanging=\"fvReport_ModeChanging\"
OnItemUpdating=\"fvReport_ItemUpdating\"
DataKeyNames=\"id\" DataSourceID=\"ObjectReport\">
<ItemTemplate>
<asp:LinkButton ID=\"lbEdit\" runat=\"server\" CausesValidation=\"true\" CommandName=\"Edit\" >Edit</asp:LinkButton>
<table>
<tr id=\"order\">
<td style=\"Width:90px;\">order:</td>
<td><asp:textbox ID=\"Textbox7\" runat=\"server\" Text=\'<%# Eval(\"order\") %>\' Width=\"600px\" TextMode=\"MultiLine\" ReadOnly=\"True\" Rows=\"3\" BorderStyle=\"NotSet\" CssClass=\"text-details\"></asp:textbox></td></tr>
<tr id=\"purpose\">
<td style=\"Width:90px;\">purpose:</td>
<td><asp:textbox ID=\"Textbox8\" runat=\"server\" Text=\'<%# Eval(\"purpose\") %>\' Height=\"34px\" Width=\"600px\" TextMode=\"MultiLine\" ReadOnly=\"True\" CssClass=\"text-details\"></asp:textbox></td></tr>
<tr id=\"feature_runs\">
<td style=\"Width:90px;\">features:</td>
<td><asp:textbox ID=\"Textbox9\" runat=\"server\" Text=\'<%# Convert.ToString(Eval(\"features\")).Replace( \"Esc\", \"Еsс\")%>\' Height=\"52px\" Width=\"600px\" ReadOnly=\"True\" TextMode=\"MultiLine\" Font-Italic=\"True\" ForeColor=\"Red\" Enabled=\"false\" CssClass=\"text-details\"></asp:textbox></td></tr>
<tr id=\"settings\">
<td style=\"Width:90px;\">settings:</td>
<td><asp:textbox ID=\"Textbox10\" runat=\"server\" Text=\'<%# Convert.ToString(Eval(\"settings\")).Replace( \"Esc\", \"Еsс\") %>\' Height=\"44px\" Width=\"600px\" TextMode=\"MultiLine\" ReadOnly=\"True\" CssClass=\"text-details\"></asp:textbox></td></tr>
</table>
</ItemTemplate>
<EditItemTemplate>
<table>
<tr id=\"order\">
<td style=\"Width:90px;\">order:</td>
<td><asp:textbox ID=\"Textbox7\" runat=\"server\" Text=\'<%# Eval(\"order\") %>\' Width=\"600px\" TextMode=\"MultiLine\" ReadOnly=\"True\" Rows=\"3\" BorderStyle=\"NotSet\" CssClass=\"text-details\"></asp:textbox></td></tr>
<tr id=\"purpose\">
<td style=\"Width:90px;\">purpose:</td>
<td><asp:textbox ID=\"Textbox8\" runat=\"server\" Text=\'<%# Eval(\"purpose\") %>\' Height=\"34px\" Width=\"600px\" TextMode=\"MultiLine\" ReadOnly=\"True\" CssClass=\"text-details\"></asp:textbox></td></tr>
<tr id=\"feature_runs\">
<td style=\"Width:90px;\">features:</td>
<td><asp:textbox ID=\"Textbox9\" runat=\"server\" Text=\'<%# Convert.ToString(Eval(\"features\")).Replace( \"Esc\", \"Еsс\")%>\' Height=\"52px\" Width=\"600px\" ReadOnly=\"True\" TextMode=\"MultiLine\" Font-Italic=\"True\" ForeColor=\"Red\" Enabled=\"false\" CssClass=\"text-details\"></asp:textbox></td></tr>
<tr id=\"settings\">
<td style=\"Width:90px;\">settings:</td>
<td><asp:textbox ID=\"Textbox10\" runat=\"server\" Text=\'<%# Convert.ToString(Eval(\"settings\")).Replace( \"Esc\", \"Еsс\") %>\' Height=\"44px\" Width=\"600px\" TextMode=\"MultiLine\" ReadOnly=\"True\" CssClass=\"text-details\"></asp:textbox></td></tr>
</table>
<asp:LinkButton ID=\"lbUpdate\" runat=\"server\" CausesValidation=\"true\" CommandName=\"Update\" >Save</asp:LinkButton>
<asp:LinkButton ID=\"lbCancel\" runat=\"server\" CausesValidation=\"false\" CommandName=\"Cancel\">Cancel</asp:LinkButton>
</EditItemTemplate>
</asp:FormView>
ObjectDataSource:
<asp:ObjectDataSource ID=\"ObjectReport\" runat=\"server\"
TypeName = \"ObjectDataSources.CS.ConnectionToDB\"
SelectMethod = \"GetReportById\" UpdateMethod=\"\">
<SelectParameters>
<asp:Parameter Name=\"report_id\" Type =\"Int32\" />
</SelectParameters>
<UpdateParameters>
<asp:Parameter Name=\"report_id\" Type =\"Int32\" />
<asp:Parameter Name=\"settings\" Type = \"String\" />
<asp:Parameter Name=\"purpose\" Type = \"String\" />
<asp:Parameter Name=\"order\" Type = \"String\" />
<asp:Parameter Name=\"features\" Type = \"String\" />
</UpdateParameters>
</asp:ObjectDataSource>
UpdateMetod:
public int UpdateReportById(int report_id, string settings, string purpose, string order, string features)
{
SqlConnection conn = new SqlConnection(_connectionString);
SqlCommand cmd = new SqlCommand(\"Update main_report SET settings = @settings, \" +
\"purpose = @purpose, order = @order, \" +
\"features = @features WHERE id = @id\", conn);
cmd.Parameters.Add(\"@id\", SqlDbType.Int).Value = report_id;
cmd.Parameters.Add(\"@settings\", SqlDbType.VarChar).Value = settings;
cmd.Parameters.Add(\"@purpose\", SqlDbType.VarChar).Value = purpose;
cmd.Parameters.Add(\"@order\", SqlDbType.VarChar).Value = order;
cmd.Parameters.Add(\"@features\", SqlDbType.VarChar).Value = features;
int result = 0;
try
{
conn.Open();
result = cmd.ExecuteNonQuery();
}
catch (SqlException e)
{
throw new Exception(\"UpdateReportById Exception.\");
}
finally
{
conn.Close();
}
return result;
}
fvReport_ItemUpdating:
protected void fvReport_ItemUpdating(Object sender, FormViewUpdateEventArgs e)
{
switch (fvReport.CurrentMode)
{
case FormViewMode.Edit:
fvReport.AllowPaging = false;
lbl.Text = \"Update!!!\";
fvReport.ChangeMode(FormViewMode.ReadOnly);
fvReport.DataBind();
break;
}
fvReport.DataBind();
}
但数据未更新(标签已更新:))。我究竟做错了什么?
没有找到相关结果
已邀请:
2 个回复
泪琉踞檄
,而不是
编辑:在发布完整的表单设计之后,我注意到在您的编辑配置文件中,您的价值已受到约束,例如...
但是此功能仅提供一种方式绑定。这意味着它将填充数据库中的值以进行控制。 但是,当您尝试更新值时,这不会将值传递回来。 您必须使用
,它提供两种方式的绑定。喜欢..
在“编辑和插入”模板中添加所有控件。
赐黄
的
属性