从asp下拉列表调用Javascript函数

从asp下拉列表调用Javascript函数,javascript,c#,asp.net,Javascript,C#,Asp.net,我有一个带有一些选择的asp下拉列表,当我从列表中选择某个项目时,我希望打开一个javascript模式。在从下拉列表中选择特定项目后,我已经成功地通过使用html按钮打开模式,但我希望少一步 以下是我在下拉列表中更改索引事件的代码: protected void ShipTo_Changed(object sender, EventArgs e) { foreach (DataListItem dli in cart.Items) { DropDownList

我有一个带有一些选择的asp下拉列表,当我从列表中选择某个项目时,我希望打开一个javascript模式。在从下拉列表中选择特定项目后,我已经成功地通过使用html按钮打开模式,但我希望少一步

以下是我在下拉列表中更改索引事件的代码:

protected void ShipTo_Changed(object sender, EventArgs e)
{
    foreach (DataListItem dli in cart.Items)
    {
        DropDownList drpShipto = (DropDownList)dli.FindControl("drpShipto");
        if (drpShipto.SelectedItem.Text == "-Add New ShipTo-")
        {
            Page.ClientScript.RegisterStartupScript(this.GetType(), "function", "showDialog('newShipTo')", true);
        }
    }
}
以下是我对js的看法:

<script>
$(document).ready(function () {
    $('#newShipTo').dialog({
        autoOpen: false,
        draggable: true,
        title: "Add New ShipTo",
        open: function (type, data) {
            $(this).parent().appendTo("form");
        }
    });

    $('#editShipTo').dialog({
        autoOpen: false,
        draggable: true,
        title: "Edit ShipTo",
        open: function (type, data) {
            $(this).parent().appendTo("form");
        }
    });
});

function showDialog(id) {
    $('#' + id).dialog("open");
}

function closeDialog(id) {
    $('#' + id).dialog("close");
}
</script>
我知道该函数可以工作,因为我可以将对该函数的调用调出,使一个按钮可见,onclick设置为showDialog'newShipTo'


我只是用RegistarStartupScript调用它不正确吗?我想试着回答一下


在您的下拉列表中…添加一个调用showDialog'newShipTo'的onchange事件请参考下面的URL


问候。

你能把这个摆弄一下吗?或者以其他方式显示HTML。我的猜测是,您需要在HTML下拉列表中有一个on change事件来触发您的函数。使用onchange javascript调用函数句柄,根据所选下拉列表的条件打开您的对话框。请参见,当此操作正常时,它还会对每个项调用函数,而不是对列表中的特定项。这就是我试图从codebehind调用函数的原因,这样我就可以很容易地确定要选择的项。然后,您需要将逻辑添加到showDialog函数中。没有小提琴就很难解决。但是console.log'type',type和console.log'data',数据显示了什么呢?如果没有我想要的价值,你可能会说,什么也不做链接,只有答案通常是不鼓励的。考虑将解决方案的信息添加到这里的答案中。在这里调用您的模式弹出窗口这就是这个问题的内容,我的其余代码正在工作。我的问题是关于为什么Page.ClientScript.RegisterStartupScriptthis.GetType,function,showDialog'newShipTo',true;它不起作用了