ASPx.Net如何在Itemtemplate DDL中捕捉值的变化

时间:2018-09-20 13:48:48

标签: javascript vb.net selectedindexchanged

我正在努力寻找解决方法。 我有一个gridview,它的第一列是在Itemtemplate中定义的DropDownList:

            <asp:GridView ID="gvXYZ" runat="server" DataKeyNames="Serial, XYZValue"> 
                <Columns>    
                 <asp:TemplateField HeaderText="Status">
                        <ItemTemplate>
                            <asp:DropDownList ID="ddlStat" runat="server" OnSelectedIndexChanged="ddlStat_SelectedIndexChanged"><asp:ListItem>  </asp:ListItem><asp:ListItem>  </asp:ListItem><asp:ListItem>OK</asp:ListItem><asp:ListItem>NG</asp:ListItem></asp:DropDownList>
                        </ItemTemplate>
                        <FooterStyle HorizontalAlign="Center" VerticalAlign="Middle" Wrap="False" />
                        <HeaderStyle HorizontalAlign="Center" VerticalAlign="Middle" Wrap="False" />
                        <ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" Wrap="False" />
                    </asp:TemplateField>
                    </Columns>   
            </asp:GridView>

向用户显示一个空的选择,可能为OK或NG。 用户在网格中的任何DDL中进行选择时,如何触发JavaScript或VB端运行功能? 为了完成询问的内容,用户必须选择“确定”或“异常”。 我试图将“保存”按钮与网格已完成这一事实联系起来。 我知道我可以在HTML下拉列表上运行JavaScript,所以我尝试创建一个函数来执行此操作,并且从一篇文章中,我发现我尝试通过javascript函数运行VB方法:         

        function ddlStat_SelectedIndexChanged() {
            var someValueToPass = 'Hello server';

            __doPostBack('CustomPostBack', someValueToPass);
        }

该脚本永远不会运行,不会发生回发并且VB附带代码:

Protected Sub ddlStat_SelectedIndexChanged(sender As Object, e As EventArgs)
    Dim x As Integer
    For x = 1 To 10 : x = x + 1 : Next
End Sub

也不会触发。 我想在VB端执行此操作,因为我认为我可以更轻松地访问网格的属性,例如行数,这样我就可以检查其中每一个的DDL。 谢谢你这样做,问我是否不清楚。

1 个答案:

答案 0 :(得分:2)

设置下拉菜单的AutoPostback属性应该引发对服务器端的回发调用。可以使用HTML事件onchange

调用JS函数
<asp:DropDownList ID="MyDropDown" runat="server" AutoPostBack="True" 
         OnSelectedIndexChanged="SelectedChange" onchange="YourChangeFun(this);">
</asp:DropDownList>

Javascript:

<script type="text/javascript">
      function YourChangeFun(ddl)
      {
         alert(ddl.selectedIndex);
      }
</script>