Forms Data Controls :: Bind () Does Not Work When Includes Runat="server"?
Feb 2, 2010
I have a FormView which contains a table and a TextBox:
<TR>
<td>CastomerName:</td>
<td>[code]....
and it works good.I changed the code to have a possibility for changing the row visibility. So, I added the row ID and runat="server". Changes are bolded:
After the runat="server" has been added to the <TR> then Bind() does not work. It reads the field value properly but writes NULL value. So, Bind() does not work or works bad. I tested the following:
1. When runat="server" is removed, than Bind() works good. The text from TextBox control is written to the database as expected.
2. When runat="server" is set and I set a default value in the ObjectDataSource - the default value is written to the database, so it means that path form ObjectDataSource works good and it means that text from TextBoxControl is not pased to the ObjectDataSource.
3. When runat="server" is set then text from TextBox.Text is never written to the database, instead null value is written.
I have Gridview1 that brings up the columns Resorts, Seasons, Seasons_ID, Resorts_ID, and User_ID
The three ID's are all foreign keys from related tables, and they are together a combined primary key of the table being accessed (they were defined that way to prevent duplicate entries for any User/Resort/Season combination).
Now the problem: I want to use the selected row from that gridview in the WHERE clause of a SQLDatasource by setting the WHERE clause up like:
WHERE (([Resort_ID] = @Resort_ID) AND ([Season_ID] = @Season_ID) AND ([User_ID] = @User_ID)) , with the parameters each coming from statements like
Gridview1.SelectedValue
When I select a row in the Gridview, I get the following error:
Operand type clash: uniqueidentifier is incompatible with int
I am pretty sure this has to do with the User_ID being in the WHERE clause.
So I have tried something like this to access the selected index:
Gridview1.DataKeys(Gridview1.SelectedIndex).Value
This does not work, as it seems to return only the first key (of three) in the DataKeyNames list.
So the question: How can I use the SelectedIndex of that gridview for such a purpose when the key contains a UserID?
I want to know differences between ASP.Net WebControls and Html Controls (with runat="server" attribute).
I also want to know the possible scenarios where I have to (or want to) prefer Html Controls (with runat=server) in place of asp.net server controls?
In case of some good articles on web, do forward me. But dont forward me the links with differences between webcontrols and html controls, because my question intended for runat="server" attribute.
I have some data which contains angle brackets in some of the fields.Even if properly escaped as <: or > (or even the hex codes), or contained in CDATA, in Visual Studio 2005 ASP.Net, the field data is being truncated at the first angle bracket. If I replace the data with curly braces, it displays fine.Is this a parser defect in the TreeView control? I can use Response.Write and see that the data provided by the XmlDataSource is fine. Example:
<ITReview> <row TopNode="REQ 123456 TT Description <Date sent to app dev> <Priority> <SubTask Status>"/><row TopNode="REQ 456789 TT Description <Date sent to app dev> <Priority> <SubTask Status>"/> </ITReview> <ITReview> <row TopNode="REQ 123456 TT Description <Date sent to app dev> <Priority> <SubTask Status>"/><row TopNode="REQ 456789 TT Description <Date sent to app dev> <Priority> <SubTask Status>"/> </ITReview>
This truncates right after TT Description. If I change to curly braces or parentheses, it displays fine.
Okay, this may seem silly, but on an ASP.NET .ascx control, I'm trying to use:
<input type="button" runat="server" />
instead of:
<asp:Button runat="server" />
And it's not working for me. This code:
<asp:Button id="btnBuyCat" runat="server" Text="Buy Cat" ToolTip="Click to buy a cat" OnClick="btnBuyCat_Click" EnableViewState="false" />
renders the following HTML: (ignoring naming containers btw)
<input type="submit" id="btnBuyCat" name="btnBuyCat" value="Shopping Cart" title="Click to buy a cat" />
That's mostly fine, except I want input type="button" not input type="submit".
I tried this code:
<input type="button" id="btnBuyCat" name="btnBuyCat" runat="server" value="Buy Cat" title="Click to buy a cat" onclick="btnBuyCat_Click" enableviewstate="False" />
and get this HTML:
<input type="button" id="btnBuyCat" name="btnBuyCat"" value="Buy Cat" title="Click to buy a cat" onclick="btnBuyCat_Click" />
Unfortunately the rendered button does not work. Also, I even tried input type="submit" just to check, but unless I use the <asp:Button> I can't get it to work. I'm sure it has something to do with the JavaScript.
I have created a new Web project (.Net 3.5) and I've removed the original Default page in favour of creating a Master page and then recreating a Default with Master page. All worked lovely. Now, when I add my controls inside of the ContentPlaceHolder on the Default page, I get compiler errors when I try to access the controls from the CodeFile:
Error 4 '_Default' does not contain a definition for 'FirstName' and no extension method 'FirstName' accepting a first argument of type '_Default' could be found (are you missing a using directive or an assembly reference?)
I have grid view control that includes a dropdown control in a template field.I wish to execute some code when the value is changed in the dropdown list. Can't figure out how to capture this event though?
ASP.Net seems to want to rewrite the path to point to the absolute location. For example, If the control is on [URL] the link href will be rewritten to read
Why does Asp.Net rewrite these control paths, and is there an elegant way to fix it?
I just want the anchor control to spit out exactly what I tell it to!!! Is that so hard?
EDIT:
I've basically done what Kelsey suggested. I knew I could do it this way, but I don't like adding markup in my code when I want something relatively simple. At least it solves the problem:
As you can see by the amount of code needed for what is essentially supposed to be be a simple and light-weight anchor, it's not the most optimal solution. I know I could use a Literal but I figured this was cleaner as I'm adding more than one anchor.
I am working on Asp.net 2.0.I have 1 problem.In my design <table ><td> <tr> structure is present.<table><tr>< td id="PanJan""< d>< r>< able>runat="server" is not use in this. How to find td, tr , table id when runat server property is not used.
I am facing one asp.net server side issue using vb.net the problem is i declared one html input hidden field in my page, the name is hidden1. but when i going to call that name into server side code, that time i got the below error, <b>Name "Hidden1" is not declared</b> Code below:
when i execute the above code,i observed that in status bar message as "connecting to localhost",if they are client side controls what is the need of going to local server,why it is happening?