2009-07-15 2 views
0

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

благодаря


 <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> 

+0

Помог ли мой ответ? – Ahmy

ответ

0

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

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

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

0

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

<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 кнопки.

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

Смежные вопросы