【问题标题】:How to bind a label inside a gridview to another table?如何将gridview中的标签绑定到另一个表?
【发布时间】:2010-09-20 13:36:56
【问题描述】:

我有一个非常标准的Gridview,带有自动生成的编辑和删除按钮。 它绑定到一个链接到我的RelationshipTypes 表的tableadapter

dbo.RelationshipTypes:
ID, Name, OriginConfigTypeID, DestinationConfigTypeID

我希望使用一个标签来从ConfigTypes 表中提取名称,使用OriginConfigTypeIDDestinationTypeID 作为链接。

dbo.ConfigTypes:
ID, Name

我的问题是,我无法在我的数据集中使用 Inner Join 自动生成编辑和删除按钮。或者我可以吗?

这是我的代码:

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
        AutoGenerateDeleteButton="True" AutoGenerateEditButton="True" CssClass="TableList"
        DataKeyNames="ID" DataSourceID="dsRelationShipTypes1">
        <Columns>
            <asp:BoundField DataField="ID" HeaderText="ID" InsertVisible="False" ReadOnly="True"
                SortExpression="ID" Visible=False/>
            <asp:TemplateField HeaderText="Origin" SortExpression="OriginCIType_ID">
                <EditItemTemplate>
                    &nbsp;<asp:DropDownList Enabled=true ID="DropDownList2" runat="server" DataSourceID="dsCIType1"
                        DataTextField="Name" DataValueField="ID" SelectedValue='<%# Bind("OriginCIType_ID") %>'>
                    </asp:DropDownList>
                </EditItemTemplate>
                <ItemTemplate>
                    &nbsp;
                    <asp:Label ID="Label2" runat="server" Text='<%# Bind("OriginCIType_ID") %>'></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField HeaderText="Name" SortExpression="Name">
                <EditItemTemplate>
                    <asp:TextBox ID="TextBox3" runat="server" Text='<%# Bind("Name") %>'></asp:TextBox>
                </EditItemTemplate>
                <ItemTemplate>
                    <asp:Label ID="Label3" runat="server" Text='<%# Bind("Name") %>'></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField HeaderText="Destination" SortExpression="DestinationCIType_ID">
                <EditItemTemplate>
                    <asp:DropDownList ID="DropDownList3" runat="server" DataSourceID="dsCIType1" DataTextField="Name"
                        DataValueField="ID" SelectedValue='<%# Bind("DestinationCIType_ID") %>'>
                    </asp:DropDownList>
                </EditItemTemplate>
                <ItemTemplate>
                    <asp:Label ID="Label1" runat="server" Text='<%# Bind("DestinationCIType_ID") %>'></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>
        </Columns>
</asp:GridView>

所以我确实尝试创建自己的编辑和删除按钮,但一直收到错误

“找不到更新方法”

或类似的东西。我是否必须在我的代码隐藏中手动编写删除和更新方法?

【问题讨论】:

  • 要“自动生成”编辑和删除按钮,gridview 的关联数据源必须在其标记中或通过后面的代码定义更新查询和删除查询。 Updates 和 Deletes 将需要一个主键,通常由 Gridviews DatakeyNames 属性定义,最终将与任何绑定字段一起传递给它们各自的查询参数。

标签: asp.net gridview datatable


【解决方案1】:

您必须告诉 ObjectDataSource 要使用什么对象或 SQLDataSource 要使用什么存储过程。使用“UpdateMethod”属性。

【讨论】:

    【解决方案2】:

    您可以使用技术背后的代码来提及可以处理更新和删除功能的方法。这是执行此操作的标准方法。可以使用Sqldatasorce来描述源。可以提及哪些表都用于内连接,也可以使用sql查询。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-12-23
      • 2012-10-13
      • 2014-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多