Как привязать метку внутри gridview к другой таблице? - PullRequest
2 голосов
/ 03 ноября 2008

У меня очень стандартный Gridview, с автоматически сгенерированными кнопками Edit и Delete. Он связан с tableadapter, который связан с моей RelationshipTypes таблицей.

dbo.RelationshipTypes:
ID, Name, OriginConfigTypeID, DestinationConfigTypeID

Я хочу использовать метку, которая будет извлекать имя из таблицы ConfigTypes, используя OriginConfigTypeID и 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 голосов
/ 19 ноября 2014

Вы можете использовать метод кода, чтобы упомянуть о том, что метод, который может обрабатывать функции обновления и удаления. Это стандартный способ сделать это. Вы можете использовать Sqldatasorce для описания источника. Вы можете указать, какие таблицы используются для внутреннего соединения, а также использовать SQL-запрос.

0 голосов
/ 04 ноября 2008

Вы должны указать либо ObjectDataSource, какой объект использовать, либо SQLDataSource, какой хранимый процесс использовать. Используйте атрибут «UpdateMethod».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...