|
hello,
Am trying to write a project. it is an online bookstore. wat can u do?
|
|
|
|
|
Whats that got to do with the original question?
manikebs wrote: wat can u do?
Lots. What can you do?
Bob
Ashfield Consultants Ltd
Proud to be a 2009 Code Project MVP
|
|
|
|
|
Hi
I have one datagrid i am binding the grid from backend. Data grid has 5 column col1, col2, col3, col4 and col5. I need to select any cell run time and drag only the selected cell into another grid. If I click row[1][3] i have to drag only the cell. Next time i will select row[3][5] in run time.
My question is how to find the selected cell value in server side.
I tried with selected index. But it will work only if we know the column name for ex row[0][4], but the column selection will change next time.
Can any one help me please?
regards
kesavan
|
|
|
|
|
Selected Index will give you the selected row, and for each cell in RowDataBound attach a javascript function which updates a hdnValue on click ,
Access that hidden value to find row and column combination
|
|
|
|
|
hi can you explain with example please
regards
kesavan
|
|
|
|
|
Hi all,
While i went to an interview interviewer asked me Difference between Application and Session ? Application common for all users but session is user level, but he didn't convinced with my answer. Please explore on my question.
Thanks..
|
|
|
|
|
According to Wikipedia[^],
"a web application is an application that is accessed via a web browser over a network such as the Internet or an intranet. The term may also mean a computer software application that is hosted in a browser-controlled environment (e.g. a Java applet) or coded in a browser-supported language (such as JavaScript, possibly combined with a browser-rendered markup language like HTML) and reliant on a common web browser to render the application executable."
By comparison, a browser session starts when an individual user accesses or logs onto a particular website and concludes when the user logs off, closes the browser, or clicks away from that website. The session may or may not involve authentication.
|
|
|
|
|
satyamzen wrote: While i went to an interview interviewer asked me Difference between Application and Session ?
I guess he has asked about "Application State" Not "Application" . You can explain them in following way.
System.Web.HttpApplicationState class is used to maintain the Application State For ASP.NET Application.It provides methods for storing information which can be accessed globally means it common for the all used.
As For Example :
Storing Info At Application Variable :
Application["Title"] = "Welcome";
// Reading the Information from application variable
string Title;
if (Application["Title"] != null)
Title = Application["Title"].ToString();
On the other hand Session stored on server side and its unique for each and every user. We can interact with Session State with System.Web.SessionState.HttpSessionState class, because this provides built in Session Object with Asp.Net Pages.
As For Example :
Following code is used for storing a value to session
Session["UserName"] = txtUser.Text;
Now, let see how we can retrieve values from Session
if (Session["UserName"] != null)
{
lblWelcome.Text = "Welcome : " + Session["UserName"].ToString();
}
else
{
}
Below are the associated events that are used for Session and Application State. This are events for Global.asax file.
For Application : Application_Start, Application_End
For Session : Session_Start and Session_End
Abhijit Jana | Codeproject MVP
Web Site : abhijitjana.net
Don't forget to click "Good Answer" on the post(s) that helped you.
|
|
|
|
|
The simplest answer to that question would be that an Application or variables in Application state are initialized when the application receives the first user request. Data in the application state is common to all users. Application variables generally get recycled during Application Pool recycling [This is my understanding, somebody please confirm!!].
Session on the other hand is user specific and starts when the server receives the first request from a user browser and ends after the user closes the browser. Each user gets a separate share of memory for his session data and hence Session variables have to be used cautiously. Also, one user can open more than one session from the same computer using different browsers, i.e. I can get two session to CP and login using 2 different logins, from IE and Firefox, simultaneously.
HTH!!
|
|
|
|
|
Dinesh Mani wrote: ends after the user closes the browser
No, session does not end when user closed the browser. Session stored in Server Side. So If you are using Inproc session Session will automatically end when it reached the Session Timeout .
So, If user close the browser, session will not end that time. Some of application may trap the Browser close and close the session from server end too.
Thanks !
Abhijit Jana | Codeproject MVP
Web Site : abhijitjana.net
Don't forget to click "Good Answer" on the post(s) that helped you.
|
|
|
|
|
I meant from a generic user perspective! That's why I had mentioned as "after the user closes the browser" and not as "when the user closes his browser".
Since the Session expiration policy is different for different session policy I didn't want to get into the details! Anyway I guess I should have been very particular and specific!
|
|
|
|
|
|
Does this anything related with ASP.NET ? This is ASP.NET Forum. Better if you ask this question on C# or Visual Studio Forum.
Abhijit Jana | Codeproject MVP
Web Site : abhijitjana.net
Don't forget to click "Good Answer" on the post(s) that helped you.
|
|
|
|
|
Ok thanks, I'll move it to C# or Visual Studio Forums.
|
|
|
|
|
I'm hoping to cash in on the well-known ASP.Net expertise of CodeProject members. Currently I'm working on an ASP.Net website for a nonprofit organization with users in many developing countries, including locations where only dialup is available. The organization has determined that many of its users have disabled javascript for security reasons. The organization wants the new website to be graphically appealing, but also wants to be able to turn off most of the graphics for dialup users. This means we have to have some way of determining whether a request comes from a user on dialup or on broadband. The organization wants its home page to be filled with graphics for broadband users, which means there has to be a way to detect the connection speed in the background before sending a visible response to the browser.
At first I thought this wouldn't be possible from the server side. Although the advice I've found by searching many forums (including this one) suggested largely that this is the case, a few people thought it should be possible. Most of the suggestions involved timing downloads through WebClient or WebRequest/WebResponse. By running a number of tests on both dialup and broadband connections I've determined that the download method doesn't work because what's being timed is the length of time needed to send the download; without javascript there's no way to tell when it has actually been received by the browser.
A different approach was suggested via a PHP script posted by Emanuele Feronato on her blog[^]. This approach involves sending some text to the browser, one KB at a time, and flushing the response after each KB. She suggested sending 512 KB to get a good estimate of the connection speed, but that's far too much for dialup users to endure. I tested her approach with 16 KB and it seemed to give reasonable results. Since PHP is a server-side technology, I thought this might work in ASP.Net as well.
My C# code for the approach is below. The text I'm sending is just a collection of dots (ASCII 0x2e). To hide the text being pushed to the browser I've used a <span style="display:none;"></span> around it. Emmanuele used comment tags around the text to accomplish the same thing.
Here are a few things I've noticed:
1. The method doesn't work at all in ASP.Net unless you set Response.BufferOutput = true .
2. You have to flush the response buffer after each 1 KB or it doesn't work either.
3. Caching (or disabling caching) seems to have no effect on the results at all. I assume this is because the response is being buffered and flushed after each 1 KB.
4. For broadband connections (DSL at home and T1 at work, the latter shared with about 50 other users), I get estimated connection speeds of between 500 and 900 Kbps. This is well below the actual connection speeds for the two lines, but seems realistic in that it accounts for other things that are happening on the networks, plus transmission delays of one sort or another. Since I just want to distinguish broadband from dialup, the actual speed is not my primary interest.
5. For dialup connections the results are puzzling. On a series of tests with connections between 45.2 and 50.6 Kbps I've gotten some responses that seem reasonable (20-40 Kbps), but others that are far above what the connection should be able to support, sometimes going up to as much as 140 Kbps and in general averaging around 100 Kbps. This result is the same with Emmanuele's PHP script and with my translation of it into C#. I've determined that the results are not being served from the browser cache; everytime you hit F5 the results are different, sometimes with higher reported speeds and other times with lower speeds.
This procedure seems to permit me to distinguish between broadband and dialup users, but I'm uncomfortable with the results because of the discrepancies mentioned in point 5. I'd be grateful for any observations about what might be causing this. If I'm not timing the actual download, what am I timing instead?
Thanks for any observations or suggestions.
<<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
void Page_Load(object sender, System.EventArgs e)
{
Response.BufferOutput = true;
Response.ContentType = "text/HTML";
Response.Charset = "utf-8";
System.Diagnostics.Stopwatch stopWatch = new System.Diagnostics.Stopwatch();
int nKB = 16;
string strK = "";
if (!String.IsNullOrEmpty(Request.QueryString["k"]))
{
strK = Request.QueryString["k"];
int nK;
if (Int32.TryParse(strK, out nK))
{
if ((nK > 0) && nK <= 25600) nKB = nK;
}
}
char[] charBuf = new char[1024];
for (int k = 0; k < 1024; ++k) { charBuf[k] = '.'; }
Response.Write("<span style=\"display:none;\">");
stopWatch.Start();
for (int i = 0; i < nKB; ++i)
{
Response.Write(charBuf, 0, 1024);
Response.Flush();
}
stopWatch.Stop();
Response.Write("</span>");
Response.Flush();
double dSpeed = (nKB * 8d) / stopWatch.Elapsed.TotalSeconds;
int nKbps = (int)dSpeed;
if (double.IsInfinity(dSpeed)) nKbps = -1;
string dOn = "<span style=\"color:Navy; font-weight:bold;\">";
string dOff = "</span>";
lblSpeed.Text = String.Format("Estimated connection speed using StopWatch = {0}{1:N0} Kbps{2},", dOn, nKbps, dOff);
lblKBytes.Text = String.Format("based on a download of {0}{1:N0} KBytes{2}.", dOn, nKB, dOff);
lblTime.Text = String.Format("Elapsed time using StopWatch = {0}{1} seconds{2}.", dOn,
stopWatch.Elapsed.TotalSeconds, dOff);
dOn = "<span style=\"color:Red; font-weight:bold;\">";
lblFreq.Text = String.Format("Stopwatch frequency on server = {0}{1:N0} ticks per second{2}.", dOn,
System.Diagnostics.Stopwatch.Frequency, dOff);
lblIsHR.Text = String.Format("Stopwatch using high-resolution timer on server? {0}{1}{2}.", dOn,
System.Diagnostics.Stopwatch.IsHighResolution, dOff);
if ((double)System.Diagnostics.Stopwatch.Frequency >= 1e9)
lblNano.Text= String.Format("Stopwatch on server is accurate to {0}less than one nanosecond{1}.", dOn, dOff);
else
lblNano.Text = String.Format("Stopwatch on server is accurate within {0}{1} nanoseconds{2}.", dOn,
((1000L * 1000L * 1000L) / System.Diagnostics.Stopwatch.Frequency), dOff);
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title>Check connection speed in C#</title>
</head>
<body>
<form id="formPage" runat="server" style="font:normal 10pt Verdana;">
<div>
<asp:Label runat="server" ID="lblSpeed"></asp:Label><br />
<asp:Label runat="server" ID="lblKBytes"></asp:Label><br /><br />
<asp:Label runat="server" ID="lblTime"></asp:Label><br /><br />
<asp:Label runat="server" ID="lblFreq"></asp:Label><br />
<asp:Label runat="server" ID="lblIsHR"></asp:Label><br />
<asp:Label runat="server" ID="lblNano"></asp:Label><br />
</div>
</form>
</body>
</html>
|
|
|
|
|
Hey... Believe me .. this should be in your own blog post.
While reading each of the scenarios.. whatever solution that comes in mind is already tried by you. Really if you dont flush your buffered output, it doesnt goes to the browser and the browser instead of downloading, it actually waits for response.
Now if you are dealing with full postbacks, it is hard to use javascript. You might try partial postback using AJAX as well if possible to determine using Javascript. But I am really not sure if it can give you the exact download speed.
I think it is always better to have multiple ajax call (Just what gmail does) so that from the first call, it starts a timer in javascript (Say using SetInterval) and after a certain timeout for the timer, you show a message to switch to html view. This might be a good way of doing this.
|
|
|
|
|
Thank you for this reply. However, it doesn't really help because as noted in the original question I have to do the detection without javascript. AJAX won't be much help without javascript. But thanks anyway for the thought.
|
|
|
|
|
As I told you... The possible solutions that are there for you are already tried by you. No one can give you any other solution.. if I am right.
|
|
|
|
|
Hello,
I am working with AdRotator control in asp.net and sql server database.
In my homepage have 120 x 600 size.
Here i want to display diferent ads on every refresh as follows:
1)single 120 x 600 ad
2)two 12 x 300 ads
3)four 120 x 150 ads
How to display like this
please tell me
Thanks in advance
modified on Sunday, December 6, 2009 2:15 PM
|
|
|
|
|
Set the style width/ height to them.
But if you are using AdRotator you cant display two or more ads in one control. It comes one at a time.
So if you want to do this, create your own custom adrotator control which has this facility. Or you can use javascript to display more than one image as well..
|
|
|
|
|
Thanks for the reply
Can u please tell me the example.
|
|
|
|
|
|
|
public partial class admin_edit_sach : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
laysach();
}
}
private void laysach()
{
int masach = int.Parse(Request.QueryString["id"].ToString());
String StrCnn = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + Server.MapPath("~/App_Data/QLBansach.mdb");
OleDbConnection cnn = new OleDbConnection(StrCnn);
cnn.Open();
OleDbCommand cmd = cnn.CreateCommand();
cmd.CommandText = "select * from Sach where MaCD=" + masach;
OleDbDataAdapter da = new OleDbDataAdapter();
da.SelectCommand = cmd;
DataSet ds = new DataSet();
da.Fill(ds);
txtTenSach.Text = ds.Tables[0].Rows[0]["Tensach"].ToString();
DropChuDe.SelectedValue = ds.Tables[0].Rows[0]["MaCD"].ToString();
DropNXB.SelectedValue = ds.Tables[0].Rows[0]["MaNXB"].ToString();
txtDonGia.Text = ds.Tables[0].Rows[0]["Dongia"].ToString();
Calendar1.SelectedDate = ds.Tables[0].Rows[0]["Ngaycapnhat"].ToString;
FileUpload1.FileName = ds.Tables[0].Rows[0]["Hinhminhhoa"].ToString();
txtMoTa.Text = ds.Tables[0].Rows[0]["Mota"].ToString();
cnn.Close();
}
protected void Btupdate_Click(object sender, EventArgs e)
{
int masach = int.Parse(Request.QueryString["id"].ToString());
String StrCnn = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + Server.MapPath("~/App_Data/QLBansach.mdb");
OleDbConnection cnn = new OleDbConnection(StrCnn);
cnn.Open();
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = cnn;
cmd.CommandType = CommandType.Text;
cmd.CommandText = "UPDATE Sach SET Tensach='" + txtTenSach.Text + "','" + DropChuDe.SelectedValue + "','" + DropNXB.SelectedValue + "','" + txtDonGia.Text + "','" + Calendar1.SelectedDate.Day + "/" + Calendar1.SelectedDate.Month + "/" + Calendar1.SelectedDate.Year + "','" + FileUpload1.FileName + "','" + txtMoTa.Text + "' Where MaNXB=" + masach;
cmd.ExecuteNonQuery();
cnn.Close();
Response.Redirect("~/Admin/ds_sach.aspx");
}
}
Erros
ompilation Error
Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.
Compiler Error Message: CS0428: Cannot convert method group 'GetType' to non-delegate type 'System.DateTime'. Did you intend to invoke the method?
Source Error:
Line 36: DropNXB.SelectedValue = ds.Tables[0].Rows[0]["MaNXB"].ToString();
Line 37: txtDonGia.Text = ds.Tables[0].Rows[0]["Dongia"].ToString();
Line 38: Calendar1.SelectedDate = ds.Tables[0].Rows[0]["Ngaycapnhat"].GetType;
Line 39: FileUpload1.FileName = ds.Tables[0].Rows[0]["Hinhminhhoa"].ToString();
Line 40: txtMoTa.Text = ds.Tables[0].Rows[0]["Mota"].ToString();
modified on Sunday, December 6, 2009 2:50 PM
|
|
|
|
|
Where is the parenthesis for this ??
Calendar1.SelectedDate = ds.Tables[0].Rows[0]["Ngaycapnhat"].ToString;
Should be
Calendar1.SelectedDate = DateTime.Parse(ds.Tables[0].Rows[0]["Ngaycapnhat"].ToString());
The parenthesis for ToString is missing ...
Cheers.
|
|
|
|