1

我有gridview,我在其中添加了下拉列表和按钮。在Rowdatabound事件中,我正在填充下拉列表在按钮单击时,我想在同一行的客户端检查下拉列表中的选定项目我如何做到这一点。我能够在按钮上添加确认消息的脚本,如下所示:

<script type="text/javascript">
        function confirmpo() {
            if (confirm("Genrate order for this product?")) {
                return true;
            }
            else {
                return false;
            }
        }

    </script>

<asp:GridView ID="grdColorname" runat="server" onrowcommand="grdvendorname_RowCommand" >

<RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
<Columns>
<asp:BoundField DataField="ProductId" HeaderText="Company Id" Visible="false"/>
<asp:BoundField DataField="Productname" HeaderText="Product name" />
 <asp:TemplateField HeaderText="Actions" >
                 <ItemTemplate>
                 <asp:DropDownList ID="lstvendor" runat="server">
                 <asp:ListItem Text="Select" Value="-1"></asp:ListItem>
                 </asp:DropDownList>
                 </ItemTemplate>
                 </asp:TemplateField>
     <asp:TemplateField HeaderText="Actions">
                 <ItemTemplate>
                  <asp:Button ID="btnGenratepo" CommandArgument='<%# DataBinder.Eval(Container, "RowIndex") %>' CssClass="btnclassedit" runat="server" CommandName="GenratePO" Text="" ToolTip="Genrate P/O" OnClientClick="javascript:return confirmpo();"/>
 </ItemTemplate>
             </asp:TemplateField
</Columns>
<RowStyle CssClass="RowStyle" />

    <EmptyDataRowStyle CssClass="EmptyRowStyle" />

    <PagerStyle CssClass="PagerStyle" />

    <SelectedRowStyle CssClass="SelectedRowStyle" />

    <HeaderStyle CssClass="HeaderStyle" />

    <EditRowStyle CssClass="EditRowStyle" />

    <AlternatingRowStyle CssClass="AltRowStyle" /> 
</asp:GridView>

关于如何做到这一点的任何建议。

4

2 回答 2

0

如果我理解正确,在里面confirmpo(),你想看到<select>按钮所在行的值吗?

在这种情况下,首先您需要查看页面呈现的 HTML。网格视图将呈现为表格。您可以像这样使用传递给的事件confirmpo()

function confirmpo(e) {
    var btn = e.srcElement;
    // .. locate the <select> element
    // .. insert rest of the code
}

您可能应该通过parentNode属性到达<tr>,然后到达<select>. 使用 DOM 遍历库(例如jQuery )可以更轻松地完成所有这些工作。

于 2012-11-01T12:45:07.807 回答
0

看起来好像没有经过测试

$("#grdColorname input:button").click(function(){
 var selectedValue=$(this).parent('td').prev('td').find('input:select').value();
});

selectedValue 将包含下拉列表所需的值。

于 2012-11-01T12:49:07.620 回答