来自代码隐藏的Javascript调用
我正在asp.net页面中使用ScriptManager。我无法从c代码中使用javascript代码。我试过脚本管理器,更新面板。。。而且没有解决。或者我不能 我想在代码隐藏中调用javascript代码 代码隐藏:来自代码隐藏的Javascript调用,javascript,asp.net,scriptmanager,Javascript,Asp.net,Scriptmanager,我正在asp.net页面中使用ScriptManager。我无法从c代码中使用javascript代码。我试过脚本管理器,更新面板。。。而且没有解决。或者我不能 我想在代码隐藏中调用javascript代码 代码隐藏: { public partial class index : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected v
{
public partial class index : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnGetir_Click1(object sender, EventArgs e)
{
RunCMD();
}
public void RunCMD()
{
if (FileUpload1.HasFiles)
{
foreach (HttpPostedFile btnUpload in FileUpload1.PostedFiles)
{
string ext = Path.GetExtension(btnUpload.FileName);
if (ext == ".tab" || ext == ".TAB" || ext == ".kml" || ext == ".KML")
{
string dosya = btnUpload.FileName;
string cmd = "cmd";
string enter = "/c";
string ad = dosya.Remove(dosya.Length - 4);
string exe =
" ogr2ogr -f \"GeoJSON\" -t_srs WGS84 " +
"C:\\json\\" + ad + ".json " +
"C:\\" + dosya;
try
{
Process p = new Process();
p.StartInfo = new ProcessStartInfo(cmd, enter + exe);
p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
p.Start();
p.WaitForExit();
}
catch (Exception)
{
}
string json = ReadJSON("C:\\json\\" + ad + ".json");
ScriptManager.RegisterStartupScript(
this,
this.GetType(),
"deneme",
"deserialize('" + json + "');",
true);
}
else
{
}
}
}
}
public string ReadJSON(string jsonPath)
{
FileStream fs = new FileStream(jsonPath, FileMode.Open, FileAccess.Read);
StreamReader sr = new StreamReader(fs);
string WillReturn = "";
try
{
WillReturn = sr.ReadToEnd();
return WillReturn;
}
catch (Exception ex)
{
WillReturn = null;
return WillReturn;
}
finally { sr.Close(); fs.Dispose(); }
}
}
}
在javascript代码中:
<script>
function deserialize(json) {
// var element = document.getElementById('text');
var type = document.getElementById("formatType").value;
var features = formats['in'][type].read(json);
var bounds;
if (features) {
if (features.constructor != Array) {
features = [features];
}
for (var i = 0; i < features.length; ++i) {
if (!bounds) {
bounds = features[i].geometry.getBounds();
} else {
bounds.extend(features[i].geometry.getBounds());
}
}
vectors.addFeatures(features);
map.zoomToExtent(bounds);
var plural = (features.length > 1) ? 's' : '';
//element.value = features.length + ' feature' + plural + ' added';
} else {
//element.value = 'Bad input ' + type;
}
}
</script>
函数反序列化(json){
//var元素=document.getElementById('text');
var type=document.getElementById(“formatType”).value;
var features=formats['in'][type].read(json);
var界;
如果(功能){
if(features.constructor!=数组){
特征=[特征];
}
对于(变量i=0;i1)?'s':'';
//element.value=features.length+“feature”+复数+加上“;
}否则{
//element.value='错误输入'+类型;
}
}
在html代码中:
<asp:Button ID="btnGetir" runat="server" OnClick="btnGetir_Click1" Text="Button" />
<asp:FileUpload ID="FileUpload1" runat="server" />
反序列化函数不工作。
我怎样才能成功呢?我想这应该行得通。是否检查执行是否到达“ScriptManager.RegisterStartupScript”?你有没有试着放一个警报(“嗨”);作为javascript函数的第一行,只是为了确保函数是否首先被调用?还请注意,此函数仅在页面生命周期结束后调用,而不是在执行按钮代码之间调用;它起作用了。所以ScriptManager.RegisterStartupScript(this,this.GetType(),“deneme”,“alert('hi');”,true);我的意思是反序列化函数应该只包含alert(“hi”);然后从C代码调用函数。