gridview with dropdown extender

时间:2009-07-15 12:09:23

标签: asp.net ajax gridview

我有使用TextBox Template字段和DropDownExtender的gridview,所以当用户点击文本框时,另一个gridview将显示包含项目列表和按钮以将项目添加到第一个gridview。我的问题是: 如果在按钮单击(在扩展程序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 :(得分:0)

我假设您需要行索引,以便您可以找到TextBox并更新它。

如果是这种情况,为什么不将内部GridView放在EditItemTemplate中呢?这样,您可以使用外部GridView的EditIndex属性来查找正确的行并更新TextBox。

或者,如果辅助GridView只是显示数据,请考虑使用ListBox - 这样,您将不会在另一个模板中,并且您可以只使用FindControl。

答案 1 :(得分:0)

您可以在gridview中设置button命令参数,如下所示:

 <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事件被触发。

希望这有用....