如何将gridview中的标签绑定到另一个表?

时间:2008-11-03 20:41:51

标签: asp.net gridview datatable

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

dbo.RelationshipTypes:
ID, Name, OriginConfigTypeID, DestinationConfigTypeID

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

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>

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

  

“找不到更新方法”

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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