How Can i fill an array that defined in javascript with c# in behind code?
EDIT:
here is my code
protected void Page_Load(object sender, System.EventArgs e)
{
string[] locations = new string[] {
"Las Vegas",
"Los Angeles",
"Tampa",
"New York",
"s",
"sss"
};
string jsArray = GetJSArrayForVBArray(locations);
this.ClientScript.RegisterArrayDeclaration("usernames", jsArray);
}
private string GetJSArrayForVBArray(string[] vbArray)
{
StringBuilder myResult = new StringBuilder();
foreach (string item in Constants.vbArray) {
{
myResult.Append(",'" + item + "'");
}
}
if ((myResult.Length > 0)) {
return myResult.ToString().Substring(1);
} else {
return "";
}
}
Javsacript:
<script type="text/javascript">
$(function () {
var usernames = new Array();
$("#tags").autocomplete({
source: usernames
});
});
</script>
Oded
500k102 gold badges899 silver badges1k bronze badges
asked Aug 7, 2010 at 9:18
2 Answers 2
use the JavaScriptSerializer
class. Something like the following should do it
protected void Page_Load(object sender, System.EventArgs e)
{
string[] locations = new string[] {
"Las Vegas",
"Los Angeles",
"Tampa",
"New York",
"s",
"sss"
};
JavaScriptSerializer serializer = new JavaScriptSerializer();
string jsArray = serializer.Serialize(locations);
this.ClientScript.RegisterClientScriptBlock(this.GetType(), "locations", jsArray, true);
}
answered Aug 7, 2010 at 9:30
4 Comments
Shahin
Thanks a lot. how can i use it in my aspx page?
Shahin
I cant use array in aspx page. please help me. i used this code. <script type="text/javascript"> $(function () { var locations= new Array(); $("#tags").autocomplete({ source: locations }); }); </script>
Russ Cam
@shaahin - what doe my code output to the page? There's no need to declare a new JavaScript array to hold the values that we are outputting from the server side, we just need to assign what we output to a variable and then assign that variable value to the source property of the object that you're passing to autocomplete
Russ Cam
Alternatively, you could write the result of calling serialize straight into the aspx markup, using
<%= ... %>
tagsSounds like a job for JSON. Note that if you scroll down on that page you'll see a number of resources for utilizing JSON in C#. It's really a great way to transfer data back and forth between various platforms/languages.
answered Aug 7, 2010 at 9:28
1 Comment
Jeffrey Blake
Well, check out the links listed on that page. Most of the work for 'converting' is done for you by one of those packages, depending on your implementation. Specifically, it becomes a matter of basically calling JsonEncode/JsonDecode (or using helper functions to work with specific collection types) with the code at: techblog.procurios.nl/k/618/news/view/14605/14863/…
default
someArray.push(someValue)
.