首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >DataBinding:“System.Data.DataRowView”不包含名为“Tasklist”的属性

DataBinding:“System.Data.DataRowView”不包含名为“Tasklist”的属性
EN

Stack Overflow用户
提问于 2018-05-27 14:24:25
回答 1查看 70关注 0票数 0

我正在制作一个包含两个网格视图的页面,其中一个上的事件负责另一个上的内容。(例如,如果您有一个任务,而您的任务有一些步骤,所以当您单击任务列表中的任务时,您可以看到与该任务关联的步骤表),但我面临如上所述的异常。有谁能帮我解决这个问题吗?

index.aspx

代码语言:javascript
复制
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <!-- Bootstrap core CSS-->
    <link href="../Content/bootstrap.min.css" rel="stylesheet" />
    <!-- Custom styles for this template -->
    <link href="../Styles/dashboard.css" rel="stylesheet" />
    <style>
        td, th
        {
            border-color: rgb(222, 226, 230);
        }
    </style>
</head>
<body>
<form id="form1" runat="server">
    <div class='table - responsive'>
        <asp:GridView ID="tasklistsGridView" runat="server" AutoGenerateColumns="False" ShowFooter="True" DataKeyNames="Id" AllowPaging="True" CellPadding="3" OnPageIndexChanging="tasklistsGridView_PageIndexChanging" OnRowDeleting="tasklistsGridView_RowDeleting" OnRowEditing="tasklistsGridView_RowEditing" OnRowUpdating="tasklistsGridView_RowUpdating" OnRowCancelingEdit="tasklistsGridView_RowCancelingEdit" PageSize="4" BackColor="#ffffff" BorderColor="#ffffff" BorderStyle="Solid" BorderWidth="0px"  CellSpacing="2" OnRowCommand="tasklistsGridView_RowCommand" class='table table - striped table - sm' OnSelectedIndexChanged="tasklistsGridView_SelectedIndexChanged"> 
            <Columns>
                <asp:BoundField DataField="Id" HeaderText="Id" InsertVisible="False"  ReadOnly="True" SortExpression="Id" />

                <asp:TemplateField HeaderText="Name" SortExpression="Name">
                    <EditItemTemplate>
                        <asp:TextBox ID="txtName" Width="100px" runat="server" Text='<%# Bind("Name") %>'></asp:TextBox>
                    </EditItemTemplate>
                    <FooterTemplate>
                        <asp:TextBox ID="txtName" runat="server"  Width="100px"></asp:TextBox>
                    </FooterTemplate>
                    <ItemTemplate>
                        <asp:Label ID="Label1" runat="server" Text='<%# Bind("Name") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>

                <asp:TemplateField HeaderText="Description" SortExpression="Description">
                    <EditItemTemplate>
                        <asp:TextBox ID="txtDescription"  Width="100px" runat="server" Text='<%# Bind("Description") %>'></asp:TextBox>
                    </EditItemTemplate>
                    <FooterTemplate>
                        <asp:TextBox ID="txtDescription" Width="100px" runat="server" ></asp:TextBox>
                    </FooterTemplate>
                    <ItemTemplate>
                        <asp:Label ID="Label2" runat="server" Text='<%# Bind("Description") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>

                <asp:TemplateField HeaderText="Prerequisites" SortExpression="Prerequisites">
                    <EditItemTemplate>
                        <asp:TextBox ID="txtPrerequisites"  Width="100px" runat="server" Text='<%# Bind("Prerequisites") %>'></asp:TextBox>
                    </EditItemTemplate>
                    <FooterTemplate>
                        <asp:TextBox ID="txtPrerequisites"  Width="100px" runat="server" ></asp:TextBox>
                    </FooterTemplate>
                    <ItemTemplate>
                        <asp:Label ID="Label3" runat="server" Text='<%# Bind("Prerequisites") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>

                <asp:TemplateField HeaderText="Workgroup" SortExpression="Workgroup">
                    <EditItemTemplate>
                        <asp:DropDownList ID="DropDownList1" runat="server" DataSourceID="SqlDataSource1" DataTextField="name" DataValueField="Id">
                        </asp:DropDownList>
                    </EditItemTemplate>
                    <FooterTemplate>
                        <asp:DropDownList ID="DropDownList1" runat="server" DataSourceID="SqlDataSource1" DataTextField="name" DataValueField="Id">
                        </asp:DropDownList>
                    </FooterTemplate>
                    <ItemTemplate>
                        <asp:Label ID="Label5" runat="server" Text='<%# Bind("Workgroup") %>'></asp:Label>
                        &nbsp;
                    </ItemTemplate>
                </asp:TemplateField>

                <asp:TemplateField HeaderText="Tag" SortExpression="Tag">
                    <EditItemTemplate>
                        <asp:TextBox ID="txtTag" Width="100px" runat="server" Text='<%# Bind("Tag") %>'></asp:TextBox>
                    </EditItemTemplate>
                    <FooterTemplate>
                        <asp:TextBox ID="txtTag" Width="100px" runat="server" ></asp:TextBox>
                    </FooterTemplate>
                    <ItemTemplate>
                        <asp:Label ID="Label4" runat="server" Text='<%# Bind("Tag") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>

                <asp:TemplateField HeaderText="Edit" ShowHeader="False">
                    <EditItemTemplate>
                        <asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="True" CommandName="Update" Text="Update"></asp:LinkButton>
                        <asp:LinkButton ID="LinkButton2" runat="server" CausesValidation="False" CommandName="Cancel" Text="Cancel"></asp:LinkButton>
                    </EditItemTemplate>
                    <FooterTemplate>
                        <asp:LinkButton ID="LinkButton2" runat="server" CausesValidation="False" CommandName="AddNew" Text="Add New"></asp:LinkButton>
                    </FooterTemplate>
                    <ItemTemplate>
                        <asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False" CommandName="Edit" Text="Edit"></asp:LinkButton>
                    </ItemTemplate>
                </asp:TemplateField>

                <asp:CommandField HeaderText="Delete" ShowDeleteButton="True"  ShowHeader="True" />

                <asp:CommandField HeaderText="Objectives" ShowSelectButton="True"  ShowHeader="True" />

            </Columns>

            <EmptyDataTemplate>
                <h3>No available tasklists! Create a new one?</h3>
                <form role="form">
                    <div class="form-group">
                        <label class="control-label" for="name">Name</label>
                        <asp:TextBox ID="newTasklistName" type="text" class="form-control" placeholder="Enter Tasklist Name" runat="server"></asp:TextBox>
                    </div>
                    <div class="form-group">
                        <label class="control-label" for="description">Description</label>
                        <asp:TextBox ID="newTasklistDescription" type="text" class="form-control" placeholder="Describe your Tasklist" runat="server"></asp:TextBox>
                    </div>
                    <div class="form-group">
                        <label class="control-label" for="prerequisites">Prerequisites</label>
                        <asp:TextBox ID="newTasklistPrerequisites" type="text" class="form-control" placeholder="Enter Prerequisites for your Tasklist" runat="server"></asp:TextBox>
                    </div>
                    <div class="form-group">
                        &nbsp;<div class="btn-group dropdown">
                            <asp:Button ID="workgroupDropdownLabel" type="button" class="btn btn-light  dropdown-toggle" runat="server" Text="Workgroups" style="padding-left: 0.4em;" />
                            <asp:DropDownList ID="workgroupDropdown" type="button" class="btn btn-light" runat="server" style="position:relative; left:-0.3em; top: 0.1em; padding-left: 0.1em;" DataSourceID="SqlDataSource1" DataTextField="name" DataValueField="Id"></asp:DropDownList>
                        </div>
                    </div>
                    <div class="form-group">
                        <label class="control-label" for="tag">Tag</label>
                        <asp:TextBox ID="newTasklistTag" type="text" class="form-control" placeholder="Tag your Tasklist" runat="server"></asp:TextBox>
                    </div>
                    <asp:Button ID="newTasklistSubmitButton" class="btn btn-default" runat="server" Text="Submit" />
                </form>
            </EmptyDataTemplate>

            <%--<RowStyle BackColor="#FFF7E7" ForeColor="#8C4510" />

            <FooterStyle BackColor="#F7DFB5" ForeColor="#8C4510" />

            <PagerStyle ForeColor="#8C4510" HorizontalAlign="Center" />--%>

            <SelectedRowStyle BackColor="#505050" Font-Bold="True" ForeColor="White" />

            <%--<HeaderStyle BackColor="white" Font-Bold="True" ForeColor="White" />--%>
            </asp:GridView>
    </div>
    <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:SOP3ConnectionString %>" SelectCommand="SELECT [name], [Id] FROM [workgroup]" ProviderName="System.Data.SqlClient"></asp:SqlDataSource>
















    <div class='table - responsive'>
        <asp:GridView ID="objectivesGridView" runat="server" AutoGenerateColumns="False" ShowFooter="True" DataKeyNames="Id" AllowPaging="True" CellPadding="3" OnPageIndexChanging="objectivesGridView_PageIndexChanging" OnRowDeleting="objectivesGridView_RowDeleting" OnRowEditing="objectivesGridView_RowEditing" OnRowUpdating="objectivesGridView_RowUpdating" OnRowCancelingEdit="objectivesGridView_RowCancelingEdit" PageSize="5" BackColor="#ffffff" BorderColor="#ffffff" BorderStyle="None" BorderWidth="0px" CellSpacing="2" OnRowCommand="objectivesGridView_RowCommand" class='table table - striped table - sm'> 
            <Columns>
                <asp:BoundField DataField="Id" HeaderText="Id" InsertVisible="False"  ReadOnly="True" SortExpression="Id" />

                <asp:TemplateField HeaderText="Objective" SortExpression="Objective">
                    <EditItemTemplate>
                        <asp:TextBox ID="txtObjective" Width="100px" runat="server" Text='<%# Bind("Objective") %>'></asp:TextBox>
                    </EditItemTemplate>
                    <FooterTemplate>
                        <asp:TextBox ID="txtObjective" runat="server"  Width="100px"></asp:TextBox>
                    </FooterTemplate>
                    <ItemTemplate>
                        <asp:Label ID="Label1" runat="server" Text='<%# Bind("Objective") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>

                <asp:TemplateField HeaderText="Tasklist" SortExpression="Tasklist">
                    <EditItemTemplate>
                        <asp:DropDownList ID="DropDownList2" runat="server" DataSourceID="SqlDataSource2" DataTextField="name" DataValueField="Id">
                        </asp:DropDownList>
                    </EditItemTemplate>
                    <FooterTemplate>
                        <asp:DropDownList ID="DropDownList2" runat="server" DataSourceID="SqlDataSource2" DataTextField="name" DataValueField="Id">
                        </asp:DropDownList>
                    </FooterTemplate>
                    <ItemTemplate>
                        <asp:Label ID="Label5" runat="server" Text='<%# Bind("Tasklist") %>'></asp:Label>
                        &nbsp;
                    </ItemTemplate>
                </asp:TemplateField>

                <asp:TemplateField HeaderText="Edit" ShowHeader="False">
                    <EditItemTemplate>
                        <asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="True" CommandName="Update" Text="Update"></asp:LinkButton>
                        <asp:LinkButton ID="LinkButton2" runat="server" CausesValidation="False" CommandName="Cancel" Text="Cancel"></asp:LinkButton>
                    </EditItemTemplate>
                    <FooterTemplate>
                        <asp:LinkButton ID="LinkButton2" runat="server" CausesValidation="False" CommandName="AddNew" Text="Add New"></asp:LinkButton>
                    </FooterTemplate>
                    <ItemTemplate>
                        <asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False" CommandName="Edit" Text="Edit"></asp:LinkButton>
                    </ItemTemplate>
                </asp:TemplateField>

                <asp:CommandField HeaderText="Delete" ShowDeleteButton="True"  ShowHeader="True" />


            </Columns>

            <EmptyDataTemplate>
                <h3>No available objectives for the selected tasklist! Create a new one?</h3>
                <form role="form">
                    <div class="form-group">
                        <label class="control-label" for="name">Name</label>
                        <asp:TextBox ID="newObjective" type="text" class="form-control" placeholder="Enter Objective" runat="server"></asp:TextBox>
                    </div>
                    <div class="form-group">
                        &nbsp;<div class="btn-group dropdown">
                            <asp:Button ID="tasklistDropdownLabel" type="button" class="btn btn-light  dropdown-toggle" runat="server" Text="Tasklists" style="padding-left: 0.4em;" />
                            <asp:DropDownList ID="tasklistDropdown" type="button" class="btn btn-light" runat="server" style="position:relative; left:-0.3em; top: 0.1em; padding-left: 0.1em;" DataSourceID="SqlDataSource2" DataTextField="name" DataValueField="Id"></asp:DropDownList>
                        </div>
                    </div>
                    <asp:Button ID="newObjectiveSubmitButton" class="btn btn-default" runat="server" Text="Submit" />
                </form>
            </EmptyDataTemplate>

            <%--<RowStyle BackColor="#FFF7E7" ForeColor="#8C4510" />

            <FooterStyle BackColor="#F7DFB5" ForeColor="#8C4510" />

            <PagerStyle ForeColor="#8C4510" HorizontalAlign="Center" />--%>

            <SelectedRowStyle BackColor="#505050" Font-Bold="True" ForeColor="White" />

            <%--<HeaderStyle BackColor="white" Font-Bold="True" ForeColor="White" />--%>
            </asp:GridView>
    </div>
    <asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString2 %>" SelectCommand="SELECT [name], [Id] FROM [tasklist]" ProviderName="System.Data.SqlClient"></asp:SqlDataSource>



    <!-- Bootstrap core JavaScript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
<script src="../Scripts/jquery-3.3.1.slim.min.js"></script>
<script>window.jQuery || document.write('<script src="../Scripts/jquery-3.3.1-slim.min.js"><\/script>')</script>
<script src="../Scripts/umd/popper.min.js"></script>
<script src="../Scripts/bootstrap.min.js"></script>

<!-- Icons -->
<script src="../Scripts/feather.min.js"></script>
<script>
  feather.replace()
</script>

<!-- Custom Scripts -->
<script>
    var tables = document.getElementsByTagName('table');

    for (var i = 0; i < tables.length; i++)
    {
        document.getElementsByTagName('table')[i].className += " table-hover";
        document.getElementsByTagName('table')[i].className += " thead-dark";
        document.getElementsByTagName('table')[i].className += " table-responsive-sm";
    }
</script>
</form>

index.aspx.cs

代码语言:javascript
复制
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;

public partial class index : System.Web.UI.Page
{
    SqlConnection connection = new SqlConnection(ConfigurationManager.AppSettings["ConnectionString"].ToString());
    SqlDataAdapter adapter = new SqlDataAdapter();
    SqlCommand command = new SqlCommand();
    DataTable table = new DataTable();

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        showTasklists();
    }
}

private void showTasklists()
{
    try
    {
        command.Connection = connection;
        command.CommandText = "select * from tasklist";
        adapter = new SqlDataAdapter(command);
        adapter.Fill(table);
        tasklistsGridView.DataSource = table;
        tasklistsGridView.DataBind();
    }
    catch (Exception x)
    {
        Response.Write("Exception: " + x.Message);
    }
}

protected void tasklistsGridView_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
    tasklistsGridView.PageIndex = e.NewPageIndex;
    showTasklists();
}

protected void tasklistsGridView_RowDeleting(object sender, GridViewDeleteEventArgs e)

{
    try
    {
        command.Connection = connection;
        command.CommandText = "delete from tasklist where Id='" + tasklistsGridView.DataKeys[e.RowIndex].Values[0].ToString() + "'";
        connection.Open();
        command.ExecuteNonQuery();
        connection.Close();
        showTasklists();
    }
    catch (Exception x)
    {
        Response.Write("Exception: " + x.Message);
    }
}

protected void tasklistsGridView_RowEditing(object sender, GridViewEditEventArgs e)
{
    tasklistsGridView.EditIndex = e.NewEditIndex;
    showTasklists();
}

protected void tasklistsGridView_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
    try
    {
        TextBox txtName = (TextBox)tasklistsGridView.Rows[e.RowIndex].FindControl("txtName");
        TextBox txtDescription = (TextBox)tasklistsGridView.Rows[e.RowIndex].FindControl("txtDescription");
        TextBox txtPrerequisites = (TextBox)tasklistsGridView.Rows[e.RowIndex].FindControl("txtPrerequisites");
        DropDownList ddlWorkgroup = (DropDownList)tasklistsGridView.FooterRow.FindControl("DropDownList1");
        TextBox txtTag = (TextBox)tasklistsGridView.Rows[e.RowIndex].FindControl("txtTag");
        command.Connection = connection;
        command.CommandText = "update tasklist set name ='" + txtName.Text + "',description ='" + txtDescription.Text + "',prerequisites ='" + txtPrerequisites.Text + "',workgroup ='" + ddlWorkgroup.SelectedItem.ToString() + "',tag ='" + txtTag.Text + "'   WHERE Id='" + tasklistsGridView.DataKeys[e.RowIndex].Values[0].ToString() + "'";
        connection.Open();
        command.ExecuteNonQuery();
        tasklistsGridView.EditIndex = -1;
        showTasklists();
        connection.Close();
    }
    catch (Exception x)
    {
        Response.Write("Exception: " + x.Message);
    }
}

protected void tasklistsGridView_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
    tasklistsGridView.EditIndex = -1;
    showTasklists();
}

protected void tasklistsGridView_RowCommand(object sender, GridViewCommandEventArgs e)
{
    try
    {
        if (e.CommandName.Equals("AddNew"))
        {
            TextBox txtName = (TextBox)tasklistsGridView.FooterRow.FindControl("txtName");
            TextBox txtDescription = (TextBox)tasklistsGridView.FooterRow.FindControl("txtDescription");
            TextBox txtPrerequisites = (TextBox)tasklistsGridView.FooterRow.FindControl("txtPrerequisites");
            DropDownList ddlWorkgroup = (DropDownList)tasklistsGridView.FooterRow.FindControl("DropDownList1");
            TextBox txtTag = (TextBox)tasklistsGridView.FooterRow.FindControl("txtTag");
            command.Connection = connection;
            command.CommandText = "insert into tasklist(name, description,prerequisites,workgroup,tag) Values('" + txtName.Text + "', '" + txtDescription.Text + "', '" + txtPrerequisites.Text + "', '" + ddlWorkgroup.SelectedItem.ToString() + "', '" + txtTag.Text + "')";
            connection.Open();
            command.ExecuteNonQuery();
            showTasklists();
            connection.Close();
        }
    }
    catch (Exception x)
    {
        Response.Write("Exception: " + x.Message);
    }
}

protected void tasklistsGridView_SelectedIndexChanged(object sender, EventArgs e)
{
    ViewState["tasklistid"] = tasklistsGridView.SelectedRow.Cells[0].Text;
    try
    {
        //2. Open Connection
        connection.Open();

        //3. Create and Execute Command
        string query = "select Id, objective from objectives where tasklistId='" + Convert.ToInt32(ViewState["tasklistid"]) + "';";
        SqlCommand command = new SqlCommand();
        command.Connection = connection;
        command.CommandText = query;
        SqlDataReader reader = command.ExecuteReader();
        DataTable Table = new DataTable();
        Table.Load(reader);
        objectivesGridView.DataSource = Table;
        objectivesGridView.DataBind();

        //4. Close connection
        connection.Close();
    }
    catch (Exception x)
    {
        Response.Write("exception: " + x.Message);
    }
}













private void showObjectives()
{
    try
    {
        command.Connection = connection;
        command.CommandText = "select * from objectives";
        adapter = new SqlDataAdapter(command);
        adapter.Fill(table);
        objectivesGridView.DataSource = table;
        objectivesGridView.DataBind();
    }
    catch (Exception x)
    {
        Response.Write("showObjectivesException: " + x.Message);
    }
}

protected void objectivesGridView_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
    objectivesGridView.PageIndex = e.NewPageIndex;
    showObjectives();
}

protected void objectivesGridView_RowDeleting(object sender, GridViewDeleteEventArgs e)

{
    try
    {
        command.Connection = connection;
        command.CommandText = "delete from objectives where Id='" + objectivesGridView.DataKeys[e.RowIndex].Values[0].ToString() + "'";
        connection.Open();
        command.ExecuteNonQuery();
        connection.Close();
        showObjectives();
    }
    catch (Exception x)
    {
        Response.Write("objectivesGridView_RowDeletingException: " + x.Message);
    }
}

protected void objectivesGridView_RowEditing(object sender, GridViewEditEventArgs e)
{
    objectivesGridView.EditIndex = e.NewEditIndex;
    showObjectives();
}

protected void objectivesGridView_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
    try
    {
        TextBox txtObjective = (TextBox)objectivesGridView.Rows[e.RowIndex].FindControl("txtObjective");
        DropDownList ddlObjectives = (DropDownList)objectivesGridView.FooterRow.FindControl("DropDownList2");
        command.Connection = connection;
        command.CommandText = "update objectives set objective ='" + txtObjective.Text + "',tasklistId ='" + ddlObjectives.SelectedItem + "'   WHERE Id='" + objectivesGridView.DataKeys[e.RowIndex].Values[0].ToString() + "'";
        connection.Open();
        command.ExecuteNonQuery();
        objectivesGridView.EditIndex = -1;
        showObjectives();
        connection.Close();
    }
    catch (Exception x)
    {
        Response.Write("objectivesGridView_RowUpdatingException: " + x.Message);
    }
}

protected void objectivesGridView_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
    objectivesGridView.EditIndex = -1;
    showObjectives();
}

protected void objectivesGridView_RowCommand(object sender, GridViewCommandEventArgs e)
{
    try
    {
        if (e.CommandName.Equals("AddNew"))
        {
            TextBox txtObjective = (TextBox)objectivesGridView.FooterRow.FindControl("txtObjective");
            DropDownList ddlObjective = (DropDownList)objectivesGridView.FooterRow.FindControl("DropDownList2");
            command.Connection = connection;
            command.CommandText = "insert into objectives(objective,tasklistId) Values('" + txtObjective.Text + "', '" + ddlObjective.SelectedItem + "')";
            connection.Open();
            command.ExecuteNonQuery();
            showObjectives();
            connection.Close();
        }
    }
    catch (Exception x)
    {
        Response.Write("objectivesGridView_RowCommandException: " + x.Message);
    }
}
}

Here's the output snap (you might want to look at that red arrow on the top)

EN

回答 1

Stack Overflow用户

发布于 2018-06-06 07:30:53

检查所有查询是否都返回名为Tasklist的字段

代码语言:javascript
复制
<asp:Label ID="Label5" runat="server" Text='<%# Bind("Tasklist")%>'></asp:Label>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50549574

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档