【问题标题】:Calling javascript function from C# code behind从后面的 C# 代码调用 javascript 函数
【发布时间】:2020-02-29 11:28:54
【问题描述】:

我正在使用地理数据 API,它为我提供了世界上所有国家、州和城市的三个不同选择 Lists

这些Lists 不能是服务器端。这些Lists 需要一些时间来加载选项。 我想从我的 C# 代码后面设置一个特定的国家、州和城市,就像在选择 Lists 中选择的那样。 我尝试使用clientScriptscriptManager 来调用Javascript 函数,将国家、州和城市设置为选中状态,但两种方法都没有调用该函数。以下是我的代码:

选择Lists代码:

       <tr>              
            <td class="auto-style3" style="border-color: #FFFFFF; color: #FFFFFF; background-color: #000080;">
                Country:</td>
            <td class="auto-style3" style="border-color: #FFFFFF; color: #FFFFFF;">
                <select id="countryId" class="countries order-alpha"  name="country">
                    <option value="">Select Country</option>
                </select>
                <asp:HiddenField ID="countryValue" runat="server" />


            </td>
        </tr>
        <tr>

            <td class="auto-style3" style="border-color: #FFFFFF; color: #FFFFFF; background-color: #000080;">
                District:</td>
            <td class="auto-style3" style="border-color: #FFFFFF; color: #FFFFFF;">
                <select id="stateId" class="states order-alpha"  name="state">
                    <option value="">Select State</option>
                </select>
                <asp:HiddenField ID="stateValue" runat="server" />
            </td>
        </tr>
        <tr>

            <td class="auto-style3" style="border-color: #FFFFFF; color: #FFFFFF; background-color: #000080;">
                City:
            </td>
            <td class="auto-style3" style="border-color: #FFFFFF; color: #FFFFFF;">
                <select id="cityId" class="cities order-alpha"  name="city">
                    <option value="">Select City</option>
                </select>
                <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
                <script src="//geodata.solutions/includes/countrystatecity.js"></script>
                <asp:HiddenField ID="cityValue" runat="server" />
            </td>
        </tr>

Javascript 函数:

function fillCities(countryName, districtName, cityName)
{
    var country = document.getElementById("countryId")
    country.value = countryName;

    var district = document.getElementById("stateId")
    district.value = districtName;

    var city = document.getElementById("cityId")
    city.value = cityName;
}
</script>

【问题讨论】:

    标签: javascript c# html asp.net


    【解决方案1】:

    假设您将代码后面的值分配给隐藏字段

    countryValue.Value = "India";
    stateValue.Value = "Maharashtra";
    cityValue.Value = "Mumbai";
    ScriptManager.RegisterStartupScript(this, this.GetType(), "com", "CallJavaScriptFun();", true);
    

    然后调用javascript方法...上面的代码是从后面的代码中设置的...

     function CallJavaScriptFun() {
    
                var countryValue = document.getElementById('<% =countryValue.ClientID %>').value;//here you will get the value of hidden field and assign to client side id....in our case it should be "India" as Value
                var country = document.getElementById('countryId');
                country = countryValue;
    
                var districtName = document.getElementById('<% =stateValue.ClientID %>').value; 
                var district = document.getElementById("stateId")
                district.value = districtName;
    
                var cityName = document.getElementById('<% =cityValue.ClientID %>').value;
                var city = document.getElementById("cityId")
                city.value = cityName;
            }
    

    所有隐藏字段countryValue,stateValue,cityValue都存储在 分别可变...

    然后分配给客户端 id....

    并且也关注这个答案....

    How do I programmatically set the value of a select box element using JavaScript?

    编辑后-

    你必须把这个 javascript 函数放到 head 部分......看看这张图片......我已经测试过了......它工作正常......

    【讨论】:

    • 我尝试了你的建议,但 RegisterStartupScript 由于某种原因没有调用 javascript 函数。
    • @@Erel 我已经编辑了我的答案..check out....全屏打开图片
    • 我在这个页面中使用了一个母版页,也许这就是问题所在?我在 javascript 函数的开头放置了一个断点,它永远不会激活
    • 谢谢!显然我在 javascript 函数开头设置的断点不起作用,即使该函数已激活。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多