通过Gridview javascript onclick获取Dropdown选定的文本

时间:2014-11-06 22:13:15

标签: asp.net gridview

我有一个带有几个标签和两个DropDownList控件的GridView。在每一行的最后,我有一个" Print"按钮(普通表格按钮,不是asp按钮)。 onclick事件生成javascript并从网格传递值。

如何获取下拉列表值?

<asp:TemplateField ItemStyle-HorizontalAlign="Center">
    <ItemTemplate>
        <input type="button" 
            style="font-size: 18px" 
            onclick="javascript:jsWebClientPrint.print('useDefaultPrinter=' + $('#useDefaultPrinter').attr('checked') + '&printerName=' + $('#installedPrinterName').val() + '&lblNDC=<%# Eval("CODE1") %>    ' + '&unit=<%# Eval("ddUnit.Text") %>    ');" 
            value="Print" />
    </ItemTemplate>
</asp:TemplateField>

它不喜欢尝试使用Eval ddUnit.Text,但这是我试图传递为URL变量的值。

2 个答案:

答案 0 :(得分:2)

这不是最优雅的解决方案,但您可以继续沿着jquery路径获取DropDownList值:

<asp:TemplateField ItemStyle-HorizontalAlign="Center">
    <ItemTemplate>
        <input type="button" style="font-size:18px" onclick="javascript:jsWebClientPrint.print('useDefaultPrinter=' + $('#useDefaultPrinter').attr('checked') + '&printerName=' + $('#installedPrinterName').val() + '&lblNDC=<%# Eval("CODE1") %>' + '&unit=' + $('#<%# ((GridViewRow)Container).FindControl("ddUnit").ClientID %>').text());" value="Print" />
    </ItemTemplate>
</asp:TemplateField>

答案 1 :(得分:0)

试试这个。

标记

<asp:TemplateField>
    <ItemTemplate>
        <asp:DropDownList CssClass="ddlUnit" runat="server">
            <asp:ListItem Text="text1" Value="1" />
            <asp:ListItem Text="text2" Value="2" />
        </asp:DropDownList>
    </ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ItemStyle-HorizontalAlign="Center">
    <ItemTemplate>
        <input type="button"
            style="font-size: 18px"
            onclick='<%# "MyPrintWrapper(this, \""+ Eval("CODE1") + "\")" %>'
            value="Print" />
    </ItemTemplate>
</asp:TemplateField>

的JavaScript

function MyPrintWrapper(elm, code) {
    var paramString = 'useDefaultPrinter=' + $('#useDefaultPrinter').attr('checked')
        + '&printerName=' + $('#installedPrinterName').val()
        + '&lblNDC=' + code
        //take the clicked button, find its row, 
        //then find the dropdownlist using its class name
        + '&unit=' + $(elm).closest("tr").find(".ddlUnit").val();
    //console.log(paramString);
    jsWebClientPrint.print(paramString);
}

这里我们为下拉列表和包装器js函数创建了一个类名,以便标记看起来更清晰。