Solved

onclick how to run my own method in c sharp

Posted on 2006-06-29
21
309 Views
Last Modified: 2008-01-09
Hello this code runs a javascrpt with name saveSelection.
I want it to run a c# method. How to do that?

    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            CheckBox Velg = (CheckBox)e.Row.FindControl("Velg");
            Velg.Attributes.Add("onclick", "saveSelection(this,'" + e.Row.Cells[0].Text + "');");
        }
    }
0
Comment
Question by:m-jansen
  • 14
  • 7
21 Comments
 
LVL 96

Expert Comment

by:Bob Learned
ID: 17011541
Have you heard anything about AJAX (AjaxPro)?

Bob
0
 

Author Comment

by:m-jansen
ID: 17011568
Very little. Think I've heard the name mentioned some place.
0
 

Author Comment

by:m-jansen
ID: 17011592
Why do you ask?
0
 
LVL 96

Expert Comment

by:Bob Learned
ID: 17011753
AjaxPro is a library that makes it possible to call server-side methods from client-side Javascript.  We use it here to get a simplify generating DataSet objects, since C#/VB.NET is so much easier.

Bob
0
 

Author Comment

by:m-jansen
ID: 17011829
ohh ok. So I must use the evening to learn Ajax... ok.ok :)
0
 
LVL 96

Expert Comment

by:Bob Learned
ID: 17011858
What is saveSelection doing?

Bob
0
 

Author Comment

by:m-jansen
ID: 17011896
right now it's doing nothing more that to view some info from a row in gridview. I wanted to use a c# method instead becuase it's easier to find what I need there.

   function saveSelection(obj, idxId)
    {        
        alert("obj: "+obj + " idexId: " + idxId);
    }
0
 
LVL 96

Expert Comment

by:Bob Learned
ID: 17011970
What method do you need to call?  One possible method is to call the method, get the result, place the result into a hidden <input> element and then extract the result from the Javascript side.

Bob
0
 

Author Comment

by:m-jansen
ID: 17011980
But if it can be done by useing javascript method i would be glad too.... or i'll start to learn ajax
0
 
LVL 96

Expert Comment

by:Bob Learned
ID: 17012002
So, which C# method are you looking to call?

Bob
0
Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

 

Author Comment

by:m-jansen
ID: 17012049
going to call all kinds of methods I think.

convert this:
Velg.Attributes.Add("onclick", "saveSelection(this,'" + e.Row.Cells[0].Text + "');");

to work with c# methods

like this
Velg.Attributes.Add("onclick", "mycsharpmethod(e)");

but I get error: e is undefined
0
 

Author Comment

by:m-jansen
ID: 17012077
I must make GridViewRowEventArgs e protected and available for both my asp script and class file, but that's not a good solution I guess.
0
 

Author Comment

by:m-jansen
ID: 17012123
I mean like this....
Velg.Attributes.Add("onclick", "mycsharpmethod('" + e + "');");
0
 

Author Comment

by:m-jansen
ID: 17012172
or maybe this like this....
Velg.Attributes.Add("onclick", "'" + list.Add(21) + "'");
0
 

Author Comment

by:m-jansen
ID: 17012289
I've installed AjaxPro.2.dll in project now. Feel free to tell me how do this with ajax.
0
 

Author Comment

by:m-jansen
ID: 17012448
   protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            CheckBox Velg = (CheckBox)e.Row.FindControl("Velg");
            Velg.Attributes.Add("onclick", ""+ list.Add(32) +"");
        }
    }

This compiles and run without exeptions, but it does not add 32 to my array list. Why not?
0
 
LVL 96

Accepted Solution

by:
Bob Learned earned 125 total points
ID: 17012966
1) Add a reference to AjaxPro.dll to the project

2) Add using AjaxPro;

3) Add the [AjaxPro.AjaxMethod()] attribute to the method that you need to call

4) Register the class that you need to access:

     Utility.RegisterTypeForAjax(typeof(DataAccessLayer));

5) Here is an example in a Javascript function to call the method:

   DataAccessLayer.ViewResults(QLNAME, QLFIELDS, QLFILTER, QLSORT, mdbExportResultCallback);

6) Here are a few lines from the call back function:

   function mdbExportResultCallback(res)
   {
       writeLine("Received data from the server, importing into Access database.");
            
      if (res.value.Tables[0].Columns[0].Name == "Error")
      {
          alert(res.value.Tables[0].Rows[0][res.value.Tables[0].Columns[0].Name]);
          return;
      }

7) You can see from the Javascript code, that you have the same properties as a DataSet/DataTable (it's like magic!!!).

Bob
0
 

Author Comment

by:m-jansen
ID: 17018068
well, thanks. That really learned me alot. But My question is still unsolved.
0
 
LVL 96

Expert Comment

by:Bob Learned
ID: 17030472
Tell me, my friend, where you are still having a problem, and how I can help.

Bob
0
 

Author Comment

by:m-jansen
ID: 17030536
To be honest I installed Atlas instead. That was better to use with my VS2005. But my problem is now solved. I didn’t need to use javascript directly. I don’t remember right now what that solved it, but Atlas did it a lot easier for me to use Ajax. So since you directed me that way I think your answer posted 06/29/2006 09:00PM BST can be considered as accepted.
0
 

Author Comment

by:m-jansen
ID: 17030556
Thanks for all help
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

AJAX ModalPopupExtender has a required property "TargetControlID" which may seem to be very confusing to new users. It means the server control that will be extended by the ModalPopup, for instance, if when you click a button, a ModalPopup displays,…
User art_snob (http://www.experts-exchange.com/M_6114203.html) encountered strange behavior of Android Web browser on his Mobile Web site. It took a while to find the true cause. It happens so, that the Android Web browser (at least up to OS ver. 2.…
You have products, that come in variants and want to set different prices for them? Watch this micro tutorial that describes how to configure prices for Magento super attributes. Assigning simple products to configurable: We assigned simple products…
This is a video describing the growing solar energy use in Utah. This is a topic that greatly interests me and so I decided to produce a video about it.

914 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

17 Experts available now in Live!

Get 1:1 Help Now