C# 数据绑定:';System.Data.DataRowView';不包含名为';图像';
我得到一个错误:C# 数据绑定:';System.Data.DataRowView';不包含名为';图像';,c#,.net,asp.net,C#,.net,Asp.net,我得到一个错误: DataBinding: 'System.Data.DataRowView' does not contain a property with the name 'image'. 我使用xml和asp.net <%@ Import Namespace="System.Xml"%> <%@ Import Namespace="System.Xml.Xsl" %> <%@ Import Namespace="System.Xml.XPath" %&g
DataBinding: 'System.Data.DataRowView' does not contain a property with the name 'image'.
我使用xml和asp.net
<%@ Import Namespace="System.Xml"%>
<%@ Import Namespace="System.Xml.Xsl" %>
<%@ Import Namespace="System.Xml.XPath" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.IO" %>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
binddata();
binddata2();
}
if (Session["userlevel"] == null)
Response.Redirect("AdminLogin.aspx");
if (Session["error_msg"] != null)
{
ErrorMessage.Text = Session["error_msg"].ToString();
Session["error_msg"] = null;
ErrorMessage.Visible = true;
}
}
void binddata()
{
DataSet ds = new DataSet();
try
{
ds.ReadXml(Server.MapPath("../App_Data/DefaultImage.xml"));
gv.DataSource = ds;
gv.DataBind();
}
catch (Exception e)
{
ErrorMessage.Text = e.Message;
ds = null;
}
}
protected void Editdata(object s, GridViewEditEventArgs e)
{
gv.EditIndex = e.NewEditIndex;
binddata();
}
protected void Deletedata(object s, GridViewDeleteEventArgs e)
{
binddata();
DataSet ds = gv.DataSource as DataSet;
ds.Tables[0].Rows[gv.Rows[e.RowIndex].DataItemIndex].Delete();
ds.WriteXml(Server.MapPath("../App_Data/DefaultImage.xml"));
binddata();
Session["error_msg"] = "The welcome image was deleted successfully";
Response.Redirect("AdminDefault.aspx");
}
protected void Canceldata(object s, GridViewCancelEditEventArgs e)
{
gv.EditIndex = -1;
binddata();
}
protected void Updatedata(object s, GridViewUpdateEventArgs e)
{
int i = e.RowIndex;
string id = (gv.Rows[e.RowIndex].FindControl("txtimage") as TextBox).Text;
string name = (gv.Rows[e.RowIndex].FindControl("txttext") as TextBox).Text;
gv.EditIndex = -1;
binddata();
DataSet ds = (DataSet)gv.DataSource;
ds.Tables[0].Rows[i]["image"] = id;
ds.Tables[0].Rows[i]["text"] = name;
ds.WriteXml(Server.MapPath("../App_Data/DefaultImage.xml"));
binddata();
Session["error_msg"] = "The welcome image was updated successfully";
Response.Redirect("AdminDefault.aspx");
}
protected void pageddata(object s, GridViewPageEventArgs e)
{
gv.PageIndex = e.NewPageIndex;
binddata();
}
protected void insert(object sender, EventArgs e)
{
binddata();
DataSet ds = gv.DataSource as DataSet;
DataRow dr = ds.Tables[0].NewRow();
dr[0] = Image1.Text;
dr[1] = Text1.Text;
ds.Tables[0].Rows.Add(dr);
ds.AcceptChanges();
ds.WriteXml(Server.MapPath("../App_Data/DefaultImage.xml"));
binddata();
Image1.Text = string.Empty;
Text1.Text = string.Empty;
Session["error_msg"] = "The welcome image was added successfully";
Response.Redirect("AdminDefault.aspx");
}
//---------------------------------------------------------
void binddata2()
{
DataSet ds2 = new DataSet();
try
{
ds2.ReadXml(Server.MapPath("../App_Data/DefaultBefore.xml"));
gv2.DataSource = ds2;
gv2.DataBind();
}
catch (Exception e)
{
ErrorMessage.Text = e.Message;
ds2 = null;
}
}
protected void Editdata2(object s, GridViewEditEventArgs e)
{
gv2.EditIndex = e.NewEditIndex;
binddata2();
}
protected void Deletedata2(object s, GridViewDeleteEventArgs e)
{
binddata2();
DataSet ds2 = gv2.DataSource as DataSet;
ds2.Tables[0].Rows[gv2.Rows[e.RowIndex].DataItemIndex].Delete();
ds2.WriteXml(Server.MapPath("../App_Data/DefaultBefore.xml"));
binddata2();
Session["error_msg"] = "The before-after image was deleted successfully";
Response.Redirect("AdminDefault.aspx");
}
protected void Canceldata2(object s, GridViewCancelEditEventArgs e)
{
gv2.EditIndex = -1;
binddata2();
}
protected void Updatedata2(object s, GridViewUpdateEventArgs e)
{
int i = e.RowIndex;
string id = (gv2.Rows[e.RowIndex].FindControl("txtimagebefore") as TextBox).Text;
gv2.EditIndex = -1;
binddata2();
DataSet ds2 = (DataSet)gv2.DataSource;
ds2.Tables[0].Rows[i]["image"] = id;
ds2.WriteXml(Server.MapPath("../App_Data/DefaultBefore.xml"));
binddata2();
Session["error_msg"] = "The before-after image was updated successfully";
Response.Redirect("AdminDefault.aspx");
}
protected void pageddata2(object s, GridViewPageEventArgs e)
{
gv2.PageIndex = e.NewPageIndex;
binddata2();
}
protected void insert2(object sender, EventArgs e)
{
binddata2();
DataSet ds2 = gv2.DataSource as DataSet;
DataRow dr2 = ds2.Tables[0].NewRow();
dr2[0] = ImageBefore.Text;
ds2.Tables[0].Rows.Add(dr2);
ds2.AcceptChanges();
ds2.WriteXml(Server.MapPath("../App_Data/DefaultBefore.xml"));
binddata2();
ImageBefore.Text = string.Empty;
Session["error_msg"] = "The before-after image was added successfully";
Response.Redirect("AdminDefault.aspx");
}
</script>
<div id="content">
<div class="about">
<b><i><asp:Label ID="ErrorMessage" runat="server" ForeColor="Red" /></i></b>
<h3>Add a welcome image and text</h3> <br />
<asp:Label ID="lblImage" runat="server" Text="Image Path" />
<asp:TextBox ID="Image1" runat="server" />
<asp:RequiredFieldValidator ID="RequiredFieldValidator3"
ControlToValidate="Image1" Font-Italic="true"
Display="Dynamic" runat="server" ErrorMessage="(Required)"
ForeColor="Red" ValidationGroup="AddWelcome" />
<br />
<asp:Label ID="Label1" runat="server" Text="Image Text" />
<asp:TextBox ID="Text1" runat="server" />
<asp:RequiredFieldValidator ID="RequiredFieldValidator4"
ControlToValidate="Text1" Font-Italic="true"
Display="Dynamic" runat="server" ErrorMessage="(Required)"
ForeColor="Red" ValidationGroup="AddWelcome" />
<asp:Button ID="btninsert" runat="server" Text="Insert" onclick="insert" ValidationGroup="AddWelcome" />
<br /><br />
<asp:GridView ID="gv" Width="80%" runat="server" OnRowEditing="Editdata" AllowSorting="true"
OnPageIndexChanging="pageddata" OnRowDeleting="Deletedata" BorderColor="Black"
OnRowUpdating="Updatedata" OnRowCancelingEdit="Canceldata" AllowPaging="True"
AutoGenerateColumns="False" PageSize="3" ForeColor="Black" GridLines="Both" >
<RowStyle BackColor="white" />
<Columns>
<asp:TemplateField HeaderText="Image name">
<ItemTemplate>
<asp:Label ID="lblimage" runat="server" Text='<%#Eval("image") %>' />
</ItemTemplate>
<EditItemTemplate >
<asp:TextBox ID="txtimage" runat ="server" Text='<%#Eval("image") %>' />
<asp:RequiredFieldValidator ID="RequiredFieldValidator1"
ControlToValidate="txtimage" Font-Italic="true"
Display="Dynamic" runat="server" ErrorMessage="(Required)"
ForeColor="Red" ValidationGroup="Welcome" />
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Image text" >
<ItemTemplate>
<asp:Label ID="lbltext" runat="server" Text='<%#Eval("text") %>' />
</ItemTemplate>
<EditItemTemplate >
<asp:TextBox ID="txttext" runat ="server" Text='<%#Eval("text") %>' />
<asp:RequiredFieldValidator ID="RequiredFieldValidator2"
ControlToValidate="txttext" Font-Italic="true"
Display="Dynamic" runat="server" ErrorMessage="(Required)"
ForeColor="Red" ValidationGroup="Welcome" />
</EditItemTemplate>
</asp:TemplateField>
<asp:CommandField ShowEditButton="True" ValidationGroup="Welcome" />
<asp:CommandField ShowDeleteButton="True" ValidationGroup="Welcome" />
</Columns>
<PagerStyle ForeColor="Maroon" HorizontalAlign="Center" Font-Bold="true"/>
<SelectedRowStyle BackColor="Crimson" Font-Bold="True" ForeColor="White" />
<EditRowStyle BackColor="White" Font-Bold="true" ForeColor="Maroon" />
<HeaderStyle ForeColor="White" BackColor="Maroon" Font-Bold="true" />
<AlternatingRowStyle BackColor="AntiqueWhite" />
</asp:GridView>
<br />
<br /><br /><br />
xml file
DefaultBefore.xml
<?xml version="1.0" standalone="yes"?>
<images xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<image>
App_Themes/theme/html/images/beforeafter1.jpg
</image>
<image>
App_Themes/theme/html/images/beforeafter3.jpg
</image>
<image>
App_Themes/theme/html/images/beforeafter5.jpg
</image>
</images>
DefaultImage.xml
<?xml version="1.0" standalone="yes"?>
<NewDataSet>
<images>
<image>
App_Themes/theme/html/images/title1.jpg
</image>
<text>
A dog is a man's best friend... Dog Club is a dogs best friend.
</text>
</images>
</NewDataSet>
受保护的无效页面加载(对象发送方、事件参数e)
{
如果(!Page.IsPostBack)
{
binddata();
binddata2();
}
if(会话[“用户级别”]==null)
重定向(“AdminLogin.aspx”);
如果(会话[“错误消息”]!=null)
{
ErrorMessage.Text=Session[“error_msg”].ToString();
会话[“error_msg”]=null;
ErrorMessage.Visible=true;
}
}
void binddata()
{
数据集ds=新数据集();
尝试
{
ReadXml(Server.MapPath(“../App_Data/DefaultImage.xml”);
gv.DataSource=ds;
gv.DataBind();
}
捕获(例外e)
{
ErrorMessage.Text=e.Message;
ds=null;
}
}
受保护的void Editdata(对象s、GridViewEditEventArgs e)
{
gv.EditIndex=e.NewEditIndex;
binddata();
}
受保护的void Deletedata(对象s、GridViewDeleteEventArgs e)
{
binddata();
数据集ds=gv.DataSource作为数据集;
ds.Tables[0]。行[gv.Rows[e.RowIndex]。DataItemIndex]。删除();
ds.WriteXml(Server.MapPath(“../App_Data/DefaultImage.xml”);
binddata();
会话[“error_msg”]=“欢迎映像已成功删除”;
重定向(“AdminDefault.aspx”);
}
受保护的void Canceldata(对象s、GridViewCancelEditEventArgs e)
{
gv.EditIndex=-1;
binddata();
}
受保护的void Updatedata(对象s、GridViewUpdateEventArgs e)
{
int i=e.RowIndex;
字符串id=(gv.Rows[e.RowIndex].FindControl(“txtimage”)作为文本框);
字符串名称=(gv.Rows[e.RowIndex].FindControl(“txttext”)作为文本框)。文本;
gv.EditIndex=-1;
binddata();
数据集ds=(数据集)gv.DataSource;
表[0]。行[i][“image”]=id;
表[0]。行[i][“文本”]=名称;
ds.WriteXml(Server.MapPath(“../App_Data/DefaultImage.xml”);
binddata();
会话[“error_msg”]=“欢迎映像已成功更新”;
重定向(“AdminDefault.aspx”);
}
受保护的无效页面数据(对象s、GridViewPageEventArgs e)
{
gv.PageIndex=e.NewPageIndex;
binddata();
}
受保护的无效插入(对象发送方、事件参数e)
{
binddata();
数据集ds=gv.DataSource作为数据集;
DataRow dr=ds.Tables[0].NewRow();
dr[0]=Image1.Text;
dr[1]=Text1.Text;
表[0]。行。添加(dr);
ds.AcceptChanges();
ds.WriteXml(Server.MapPath(“../App_Data/DefaultImage.xml”);
binddata();
Image1.Text=string.Empty;
Text1.Text=string.Empty;
会话[“error_msg”]=“已成功添加欢迎映像”;
重定向(“AdminDefault.aspx”);
}
//---------------------------------------------------------
void binddata2()
{
数据集ds2=新数据集();
尝试
{
ReadXml(Server.MapPath(“../App_Data/DefaultBefore.xml”);
gv2.DataSource=ds2;
gv2.DataBind();
}
捕获(例外e)
{
ErrorMessage.Text=e.Message;
ds2=null;
}
}
受保护的无效Editdata2(对象s、GridViewEditEventArgs e)
{
gv2.EditIndex=e.NewEditIndex;
binddata2();
}
受保护的void Deletedata2(对象s、GridViewDeleteEventArgs e)
{
binddata2();
数据集ds2=gv2.DataSource作为数据集;
ds2.Tables[0]。行[gv2.Rows[e.RowIndex]。DataItemIndex]。删除();
WriteXml(Server.MapPath(“../App_Data/DefaultBefore.xml”);
binddata2();
会话[“error_msg”]=“成功删除前后映像”;
重定向(“AdminDefault.aspx”);
}
受保护的void Canceldata2(对象s、GridViewCancelEditEventArgs e)
{
gv2.EditIndex=-1;
binddata2();
}
受保护的void Updatedata2(对象s、GridViewUpdateEventArgs e)
{
int i=e.RowIndex;
字符串id=(gv2.Rows[e.RowIndex].FindControl(“txtimagebefore”)作为文本框);
gv2.EditIndex=-1;
binddata2();
数据集ds2=(数据集)gv2.DataSource;
ds2.表[0]。行[i][“image”]=id;
WriteXml(Server.MapPath(“../App_Data/DefaultBefore.xml”);
binddata2();
会话[“error_msg”]=“成功更新之前和之后的映像”;
重定向(“AdminDefault.aspx”);
}
受保护的void pageddata2(对象s、GridViewPageEventArgs e)
{
gv2.PageIndex=e.NewPageIndex;
binddata2();
}
受保护的void insert2(对象发送方、事件参数e)
{
binddata2();
数据集ds2=gv2.DataSource作为数据集;
DataRow dr2=ds2.Tables[0].NewRow();
dr2[0]=ImageBefore.Text;
表[0].Rows.Add(dr2);
ds2.AcceptChanges();
WriteXml(Server.MapPath(“../App_Data/DefaultBefore.xml”);
binddata2();
ImageBefore.Text=string.Empty;
会话[“error_msg”]=“成功添加之前和之后的映像”;
重定向(“AdminDefault.aspx”);
}
添加欢迎图片和文本
<images>
<image>
<path>
App_Themes/theme/html/images/beforeafter1.jpg
</path>
</image>
<image>
<path>
App_Themes/theme/html/images/beforeafter3.jpg
</path>
</image>
<image>
<path>
App_Themes/theme/html/images/beforeafter5.jpg
</path>
</image>
</images>
<%# Eval("path") %>