用户控制多次在网页上,javascript无法正常工作

时间:2012-11-10 01:26:11

标签: javascript user-controls

网页上的多次用户控制:

我有一个带有网格和列表框的用户控件 网格设置为auto create column = True 我将查询传递给控件并在Page_Load事件中填充网格 用户双击网格上的行进行选择 添加这些行以列出框(列1作为值,列2作为显示) 如果用户双击列表框上的行 - 它将从选择中删除 Plus系统会忽略网格行(如果它已存在于列表框中)

到目前为止一切都那么好,它完美无缺!

扭: 如果页面上有一个onyl控件 - 一切都很好 但是如果控件在网页上多次出现 - 它无法正常工作

错误是'因为每个用户控件都要复制相同的java脚本,所以只有最后一个正在工作

以下是代码......帮助!

    <script type="text/javascript">

    function list_DblClick(s, e) {
        s.RemoveItem(s.GetSelectedIndex())
    }


    function grid_DblClick(s, e) {
        var sfn = s.GetColumn(0).fieldName + ';' + s.GetColumn(1).fieldName
        s.GetRowValues(s.GetFocusedRowIndex(), sfn, OnGetRowValues);
    }

    //check for duplicate and add new
    function OnGetRowValues(values) {
        var sFound = "False"
        for (var i = 0; i < selList.GetItemCount(); i++) {
            if (values[0] == selList.GetItem(i).value) {
                sFound = "True"
            }
        };
        if (sFound == "False") {
            selList.AddItem(values[1], values[0])
        };
    }
</script>


<br />
<br />
    <dx:ASPxGridView ID="grdSelection" ClientInstanceName="grid" runat="server" Width="100%">
        <ClientSideEvents RowDblClick="grid_DblClick" />
        <SettingsBehavior AllowFocusedRow="True" />
    </dx:ASPxGridView>
<br />
<br />
    <dx:ASPxListBox ID="listSelected" ClientInstanceName="selList" runat="server" Height="250px" Width="100%" >
     <ClientSideEvents ItemDoubleClick="list_DblClick" />
    </dx:ASPxListBox>
<br />
<br />

1 个答案:

答案 0 :(得分:0)

由于您已经在使用用户控件,请尝试使用Page.RegisterClientScriptBlock(通过键)在代码隐藏中加载JavaScript代码,并检查是否已使用IsClientScriptBlockRegistered加载了JS。这样做是非常有效的,应该可以工作,因为你只是一次声明一个函数而不是n次(这可能就是它在客户端抛出错误的原因)。

http://msdn.microsoft.com/en-us/library/system.web.ui.page.registerclientscriptblock(v=vs.71).aspx