gridview с раскрывающимся списком - PullRequest
0 голосов
/ 15 июля 2009

У меня есть gridview с полем TextBox Template и DropDownExtender, поэтому, когда пользователь щелкает текстовое поле, появляется другое gridview, содержащее список элементов и кнопку для добавления элемента в первый gridView. мой вопрос: Как я могу в случае нажатия кнопки (которая находится в окне сетки расширителя), чтобы получить индекс строки первого вида сетки (которая содержит текстовое поле)?

спасибо


        <cc1:DropDownExtender ID="uxItemExtender" runat="server" DropDownControlID="uxItemContainer" TargetControlID="uxItems"></cc1:DropDownExtender>
        <asp:Panel BackColor="AliceBlue" ID="uxItemContainer" runat="server" ScrollBars="Both" Height="400" Width="200">
        <asp:GridView ID="uxItemsView" runat="server" Font-Size="Small" AutoGenerateColumns="false" OnRowDataBound="uxItemsView_RowDataBound">
        <Columns>
        <asp:TemplateField HeaderText="Item Details">
        <ItemTemplate>
         <asp:Label ID="uxItemNameLbl" Text="Name :" runat="server"></asp:Label>
        <asp:Label ID="uxItemName" runat="server"></asp:Label><br />
        <asp:Label ID="uxItemDescriptionLbl" Text="Description :" runat="server"></asp:Label>
        <asp:Label ID="uxItemDescription" runat="server"></asp:Label><br />
        <asp:Label ID="uxItemPriceLbl" Text="Price :" runat="server"></asp:Label>
        <asp:Label ID="uxItemPrice" runat="server"></asp:Label><br />
        <asp:Button ID="uxSelectItem" runat="server" Text="Add Item" OnClick="uxSelectItem_Click" /><br />
        </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Picture">
        <ItemTemplate>
        <asp:Image ID="uxItemImage" runat="server" Width="45" Height="50" />
        </ItemTemplate>
        </asp:TemplateField>
        </Columns>
        </asp:GridView>
        </asp:Panel>
         </asp:TemplateField>

Ответы [ 2 ]

0 голосов
/ 15 июля 2009

Вы можете установить аргумент команды кнопки внутри вида сетки следующим образом:

 <asp:Button ID="uxSelectItem" runat="server" Text="Add Item" OnClick="uxSelectItem_Click" CommandArgument="Row Index" /><br /> 

А внутри события OnClick вы можете привести отправителя и получить индекс строки из аргумента команды кнопки, как показано ниже:

protected void uxSelectItem_Click(object sender, EventArgs e)
{
    Button uxSelectItem = (Button)sender;
    int RowIndex = int.Parse(uxSelectItem.CommandArgument);
}

Итак, у вас есть индекс строки, по которому запускается событие OnClick кнопки.

Надеюсь, что это полезно ....

0 голосов
/ 15 июля 2009

Полагаю, вам нужен индекс строки, чтобы вы могли найти TextBox и обновить его.

Если это так, почему бы не поместить вместо этого внутренний GridView в EditItemTemplate? Таким образом, вы можете использовать свойство EditIndex внешнего GridView, чтобы найти правильную строку и обновить TextBox.

Или, если вторичный GridView предназначен только для отображения данных, рассмотрите возможность использования ListBox - таким образом, вы не будете находиться внутри другого шаблона, и вы можете просто использовать FindControl.

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