Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

Saçma sapan asp.net vb.net sorusu


Öne çıkan mesajlar

Mesaj tarihi:
imkansız değil fakat hamallığı çok, resmi db den çekip gösterirken binary okuyup image çıktısı veren bi fonksiyon yazman veya netten bulman lazım.

http://www.aspnettutorials.com/tutorials/database/Save-Img-ToDB-Csharp.aspx
Mesaj tarihi:
Dediklerinizi uyguladım,resim konusu dediğiniz gibi daha güzel ve kolay oldu.Şimdi daha ilginç bir sorunum var.Ben jquery ile bir ajax fonksiyonu yazdım.Web service e gidip,oradaki fonksiyonuma değer aktarıyorum.

$(document).ready(function() {
$.ajax({
type: "POST",
url: "Submit.asmx/getPosts",
data: "userId=" + $('#hiddenUserId').val(),
success: function(msg) {
eval('var result = ' + $(msg).text());
getWallPost[getWallPost.length] = result;
getWallPosts();
},
});
});

getPosts fonksiyonumda benim classımın fieldlarını doldurup serialize edip bana bir xml dosyası dönüyor(daha doğrusu json tarzı bir şey dönüyor.Serialize edilmiş hali).ben
eval('var result = ' + $(msg).text()); ile bu dönen dosyayı objeye çeviriyorum.Sonra jquery nin içindeki getWallPost() fonksiyonundada


function getWallPosts() {
$.each(getWallPost, function(index, value) {
$("#denemeDiv").append("<span>" + value.Text + "</span>");
});
}

yaparak,jquery de bana dönen xml dosyasını obje yapıp onun fieldlarına value. ile ulaşıyorum.Şimdi bu kod çalışıyor.Benim bunun aynısı bir fonksiyonum daha var,onunla birşeyler ekliyorum,bununlada sayfa açıldığında o eklenen tüm yazıların gelmesini sağlıyorum.Nitekim gelen value.Text yada ıvırzıvırların hepsi undefined olarak görünüyor.

getPosts fonksiyonumdan geri dönen dosyada ise bu alanlarımın hepsi dolu görünüyor,yani return değerim doğru ama ben bu değerleri kullanamıyorum.
Mesaj tarihi:
eval('var result = ' + $(msg).text());

Bu satırı aşağıdaki ile değiştir:

var result = $(msg).text();

Hatta $(msg).text()'e bile gerek olmaması lazım, var result = msg yeterli olmalı. Ama XML'in direk böyle parse edilemeyeceğini düşündüğüm için baya bi hata bulup kayboldum kodun arasında.

JSON'u işlemek daha kolay, XML yerine ona da bakabilirsin.
Mesaj tarihi:
jsonu işlemek daha kolay da,bana bu vb.net return json dediğim an xml arasına sıkıştırılmış json yolluyor,o yüzden dediğim şekilde objeye çevirmem gerekiyor önce.dediğin gibi yaptığımda elimdeki fieldlara ulaşamıyorum
Mesaj tarihi:
şimdi şöyle bi sorunum var,bu benim yaptığım json oluyor değil mi
web service imdeki getPosts fonksiyonumun sonunda

Dim serializer As New JavaScriptSerializer
Dim json As String = serializer.Serialize(posts)

Return json

diyorum,oradaki posts dediğim şey ise bir tane List,içine benim classımdan alıyor.
dediğin şekilde yapınca hata aldım,fonksiyon çalışmadı,direkt error kısmına geçti
Mesaj tarihi:
@Kojiroh abi bu yazdığım fonksiyon çok güzel çalışıyor.Benim web service imde iki tane fonksiyon var,bir tanesi benim ajax ile post ettiğim text ile id yi alarak database e kaydediyor.Bunuda oraya koyduğum fonksiyonda yapıyorum.Sadece url sini değiştiriyorum.
url: "Submit.asmx/getPosts",
değilde
url: "Submit.asmx/submitPosts",
diyorum.Galiba yolladığım id parametresini yollayamıyorum.İlk sayfada session yaratıyorum bi tane,id adında,ikinci sayfamdada session ile sayfamdaki hiddenField ımın value sine bu id yi eşitliyorum. AJAX tada bu fieldın value sini id olarak yolluyorum parametre olarak.submit fonksiyonunda işe yararken,get fonksiyonunda neden işe yaramıyor.
Mesaj tarihi:
Valla ben kayboldum açıkçası, o kadar yazdım ettim ama kodun genel olarak işleyişini bilmediğim ve aslında VB'den de çakmadığım için öyle havaya boş boş sıkar gibi oldu.

Ama submit'in çalışıp, get'in çalışmaması demek, özellikle de submit'in sonucunda bi cevap almıyosan, gelen cevabı parse ederken sorun olduğu demek. Bu da gelen verinin formatından dolayıdır ki; böyle uzaktan çözebilmek için hem kodu, hem giden isteği, hem de gelen cevabı incelemek lazım
Mesaj tarihi:
Sorunu buldum,submitPost fonksiyonunda json dosyama sadece 1 tane class atıyordum,
bana döndürdüğü dosya

{"Id":3}


getPost fonksiyonum bana list i serialize etmiş json yolluyodu.onun döndürdüğü dosyada

[ {"Id":3} ]

List olduğu için bana [ ] arasına sokuşturulmuş json yolluyormuş,o yüzden objeme erişemiyormuşum. substr metoduyla iptalliyim önce şu parantezleri o zaman
Mesaj tarihi:
Şimdi böyle birşey çözemediğim için foksiyonları koyuyorum tek tek.

getPost Fonksiyonum


<WebMethod()> _
Public Function getPosts(ByVal userId As Integer) As String
Dim posts As New List(Of WallPost)
Dim conn As New SqlConnection
Dim comm As SqlCommand
Dim myDataReader As SqlDataReader
Dim userById As String = userId

conn.ConnectionString = "connection stringim çok uzun diye sildim"
comm = New SqlCommand("SELECT postId, postedText, postedDate, userPhotoName FROM [Wall] w,[User] u WHERE w.postedById =@userById AND u.userId =@userById ", conn)
comm.Parameters.AddWithValue("@userById", userById)
conn.Open()
myDataReader = comm.ExecuteReader()
While myDataReader.Read()
Dim post As New WallPost
post.Text = myDataReader("postedText")
post.Id = myDataReader("postId")
post.postDate = myDataReader("postedDate")
post.postedById = userById
post.userPhotoName = myDataReader("userPhotoName")
posts.Add(post)
End While
conn.Close()
myDataReader.Close()

Dim serializer As New JavaScriptSerializer
Dim json As String = serializer.Serialize(posts)

Return json
End Function




submitPost fonksiyonum


<WebMethod()> _
Public Function submitPost(ByVal text As String, ByVal userId As Integer) As String
Dim x As New WallPost
Dim conn As New SqlConnection
Dim comm As SqlCommand
Dim com As SqlCommand
Dim time As DateTime = DateTime.Now.ToString
Dim userById As String = userId
Dim photo As String
Dim da As New SqlDataAdapter
Dim ds As New DataSet

x.Text = text
x.postDate = time
x.postedById = userById
conn.ConnectionString = "connection stringim"
comm = New SqlCommand("INSERT INTO [Wall](postedText,postedDate,postedById) VALUES(@text ,@date, @userID); SELECT SCOPE_IDENTITY();", conn)
comm.Parameters.AddWithValue("@text", x.Text)
comm.Parameters.AddWithValue("@date", x.postDate)
comm.Parameters.AddWithValue("@userID", x.postedById)
com = New SqlCommand("SELECT userPhotoName FROM [User] WHERE userId = '" & x.postedById & "';", conn)
conn.Open()
x.Id = comm.ExecuteScalar()
da.SelectCommand = com
da.Fill(ds)
photo = ds.Tables(0).Rows(0).Item(0)
x.userPhotoName = photo

conn.Close()

Dim serializer As New JavaScriptSerializer
Dim json As String = serializer.Serialize(x)

Return json
End Function



submit fonksiyonum AJAX


$(document).ready(function() {
$("#btnShare").click(function() {
$.ajax({
type: "POST",
url: "Submit.asmx/submitPost",
data: "text=" + $('#txtStatus').val() + "&userId=" + $("#hiddenUserId").val(),
success: function(msg) {
eval('var result = ' + $(msg).text());
wallPosts[wallPosts.length] = result;
renderWallPosts();
}
});
});
});

function renderWallPosts() {
$("#divWall").empty();
$.each(wallPosts, function(index, value) {
$("#divWall").append("<img src='Photo/" + value.userPhotoName + "' Height='50px' Width='30px'/><span>" + value.Text + ");
});
}


şimdi bu çalışırken get çalışmıyor çünkü list döndürüyor bana.ben bu listi substr edemedim,kaç saattir mal mal uğraşıyorum,bi yardım edin :D

Mesaj tarihi:
Sorun halloldu.Ajax taki submitPost ta
wallPosts[wallPosts.length] = result;

yapıyordum.Çünkü bana tek bir class döndürüyordu.Ben salak gibi Ajaxtali getPosttada aynı muhabbeti yapmaya çalışıyodum ama bana dönen değer List olduğu için,ve o Listi Arrayin bir elemanına eşitlemeye çalıştığım için olmuyormuş
wallPosts = result;

yaptım,sorunum halloldu.

Bu arada wallPosts array
Mesaj tarihi:
Yeni konu açmayayım diye buraya soruyorum, şimdi ben jquery ile

$("#divDeneme").append("<span>Id:" + value.Id + " Text: " + value.Text + "</span><br/><a href='#' onclick='denemeFunk(" + value.Id ");' return='false'>Deneme</a><br /><textarea id='text" + value.Id + "' visible='false'></textarea><br/>");

Şimdi ben burada Id si divDeneme olan div imin sonuna ilk olarak 2-3 yazı ekliyorum,en sonunada Deneme yazan bir link ekleyerek bunun onclick inde denemeFunk fonksiyonuna parametre yolluyorum.Bu linkin bir altınada bir tane textarea atıyorum,id si spesifik olsun diyede text + id diyorum,bu id uniqueidentifier tipinde bu arada.Neyse bu alanın visible ını false yapıyorum.Benim istediğim bu denemeFunk fonksiyonunda bu deneme linkine tıkladığımda bu alanı görünür yapması.


function denemeFunk(id) {
$("#text'" + id + "'").show();
$("#text'" + id + "'").css('visibility', 'visible');
}


böyle bir fonksiyon yazdım,sırayla ikisinide denemedim ama istediğimi yapmadı.Bir yardım edebilirmisiniz
Mesaj tarihi:
söylemeyi unutmuşum zaten o şekildede denemiştimde,hata bendeymiş,dinamik olarak yarattığım linkte tırnaklar karışmış.ondan olmamış.

Yeni bir soru daha sorayım :D

yine jquery sorusu,bir tane webservice fonksiyonu yazdım,bana json olarak geri dosya döndürüyor.onda bir sorunum yok,ama bu meretin jquery sini yazamadım.


en tepede bir tane global array tanımladım
var results = [];

$(document).ready(function() {
$("#searchTextBox").keyup(function() {
$.ajax({
type: "POST",
url: "Submit.asmx/userSearch",
data: "user=" + $("#searchTextBox").val(),
success: function(data) {
eval('var result = ' + $(data).text());
results = result;
alert(results);
}
});
});
$("#searchTextBox").autocomplete({
source: results,
minLength: 4
});
});


json dosyam bu şekilde
["deneme","deneme2","deneme3",denemeKayit]

ben birşeyler yazmaya başladığım zaman alert ın içine arama sonuçlarım geliyor,json dosyasını işliyorum yani,tek sıkıntım bu autocomplete olayının çalışmaması
Mesaj tarihi:
yardım lazım genşler

bana gelen dosya HTTP POST protokolünü kullanarak sınadığımda
["option1",option2] olarak görünüyor.Ben bu dosyayı eval ile objeye çevirip değişkene attığımda
"option1","option2" bu şekilde geliyor.
×
×
  • Yeni Oluştur...