2014-11-06 88 views
1

我有一个GridView有几个标签和两个DropDownList控件。在每一行的末尾,我有一个“打印”按钮(常规表单按钮,而不是asp按钮)。 onclick事件产生javascript并从网格传入值。通过Gridview获取下拉选定的文本javascript onclick

如何获取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=<%# Eval("ddUnit.Text") %> ');" 
      value="Print" /> 
    </ItemTemplate> 
</asp:TemplateField> 

它不喜欢尝试评估ddUnit.Text,但这是我想作为URL变量传递的值。

+0

你正在使用库jquery的权利? – naveen 2014-11-07 06:53:50

回答

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

这几乎工作。它不采用选定的值,它传递下拉的所有可能的值。我尝试了.text和.value,但都没有成功。 – Andrew 2014-11-10 21:22:33

+0

$('#<%= ddUnit.ClientID%> option:selected')。val();你把我放在正确的轨道上。非常感谢。 – Andrew 2014-11-10 21:44:02

+1

嘎!当然'选择:选择'...我的错误。很高兴它让你去。 – ethorn10 2014-11-10 22:43:21

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函数,这样的标记看起来比较清爽创建的类名。

相关问题