Jag har ett besvärligt problem (tror jag)...jag skulle vilja använda det gamla hederliga kommandot doCommand('bold') för att sätta fetstil i en text i en textruta (.net kontroll).
Jag har en masterpage samt en fil som heter default.aspx kopplad till denna. I denna sida finns det en gridview (GVAds) som bl.a har detta templatefield:
function doCommand(command){
var maintxt = document.getElementById("MainText");
maintxt.document.execCommand(command);
}
när jag klickar på bilden efter att jag markerat text i textrutan, får jag felmeddelandet: "Objekt krävs"...visst ett javascript fel...men kanske är relaterat till asp.net.
hur kan man göra för att kunna göra text i en textruta till fetstil som befinner sig i en gridview och som dessutom befinner sig i en masterpage...?
...är lite trög i denna timme...jag behöver naturligtvis den fullständiga sökvägen till textrutan ifrån den rad jag redigerar....men hur ska jag få tag på den?
Den ser ut (för en rad) såhär:
ctl00$ContentPlaceHolder1$GVAds$ctl02$MainText
hur ska jag kunna få knappen till:
<img border="0" onclick="ctl00$ContentPlaceHolder1$GVAds$ctl02$MainText.execCommand('bold');" src="fetstil.gif" />
...klart jag kan köra med en imagebutton (.NET) istället, men hjälper det mig?
Jag kan bara kort berätta hur jag hade tänkt.
- Jag hade gjort om img till en asp Image kontroll istället.
- Kört OnDataBound på GridViewn, och i den metoden gjort FindControl på Image och MainText.
- Kallat dom för tex img och txtMain.
- img.Attributes.Add("onclick", "myFunctionToDoBold('" + txtMain.ClientID + "');");
- lagt en simpel javascript snutt myFunctionToDoBold som stylar om till fett.
Notera att jag dock inte gjort såhär på en GridView utan bara på Repeaters, men det borde väl funka tror jag :OO
*edit
de heter visst: OnRowDataBound GridViewRowEventArgs
dessa kontroller ligger i min "EditItemTemplate" varvid jag får: Objektreferensen har inte angetts till en instans av ett objekt
när jag lägger till "onclick" i "OnRowDataBound"
Samma sak händer när jag lägger den i "RowEditing" med denna kod:
Protected Sub GVAds_RowEditing(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewEditEventArgs) Handles GVAds.RowEditing
Dim row As GridViewRow = DirectCast(sender, GridView).Rows(e.NewEditIndex)
Dim img As Image = DirectCast(row.FindControl("IMG1"), Image)
Dim txtMain As TextBox = DirectCast(row.FindControl("MainText"), TextBox)
img.Attributes.Add("onclick", "doCommand('" + txtMain.ClientID + "');")
End Sub
Sorry freguz...var jag som missade att göra en kontroll på "RowDataBound", resultatet blev såhär :)
Protected Sub GVAds_RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs) Handles GVAds.RowDataBound
If Not GVAds.EditIndex = -1 Then
Dim IMG As Image = CType(e.Row.FindControl("IMG1"), Image)
Dim MT As TextBox = CType(e.Row.FindControl("MainText"), TextBox)
IMG.Attributes.Add("onclick", "doCommand('" + MT.ClientID + "');")
End If
End Sub
Bockar å bugar, tack freguz!
274 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25