jag har ett javascript i master page. Kan jag på nåt sätt anropa detta script när jag kör en page load på en content page? Om det går, hur löser man detta? Javascript är ett klient-script, dvs det exekveras när sidan når klienten. Om du deffinierar ditt script i din masterpage så finns det i din contentpage när den når klienten. Men att komma åt det från Page_Load för din sida på servern är inte möjligt då det är serverside kod och inte klientside kod. Du har nog förstått den rätt. Hur kan jag anropa javascriptet från min contet page? Jag har försökt med allt, tycker jag utan att få det att fungera. Använd Page.ClientScript.RegisterStartupScript för att få din sida att anropa din javascript function som du har deffinierat i din Masterpage typ: Hur skriver jag detta om jag har en funktion som heter checkLayer i Master? Är namnet på javascript funktionen "checkLayer"? Jag får det inte att fungera. jag återkommer ikväll med mer info om det och kod. Titta i webbläsaren och kolla på koden som servern skickat, den säger mer om problemet i nuläget Jag förstår inte hur du menar Oskar? Att anropa RegisterStartupScript fungerar inte av den anledning att du använder en update-panel. Den laddar inte om hela sida och orsakar därför inte onload eventet att köras. Dessutom uppdateras bara innehållet i en updatepanel. Möjligen kan du lägga in ett javascript i din panel som innehåller anropet. Är själv inte helt förtrogen med updatepanel kontrollen så det får du kolla med någon annan. Men förslagsvis kan du i framtiden nämna att du använder updatepanel då det påverkar hela renderingen av sidan... Chris: Som jag skrev innan är jag ledsen att jag missade skriva det, jag var stressad när jag skrev frågan och upptäckte det när jag kom hem. Jag ska skriva mer utförligt i framtiden;)Javascript i master page
Sv: Javascript i master page
Rätta mig gärna om jag missförstått din fråga...Sv:Javascript i master page
Sv: Javascript i master page
<code>
Page.ClientScript.RegisterStartupScript(this.GetType(), "refName", "JScriptFnName()", true);
</code>
Detta kommer generera ett script som körs vid onload i sidan och som anropar en javascript function med amn JScriptFnName som du deffinierar i din masterpage eller bygger dynamiskt i contentpagen med hjälp av Page.ClientScriptSv:Javascript i master page
Sv: Javascript i master page
Masterpagen ser ut ungefär så här?
<html>
<head>
<script>
function checkLayer()
{
// Do something
}
</script>
</head>
...
då blir anropet i din contentpages codebehind något i stil med:
<code>
protected void Page_Load(object sender, EventArgs e)
{
Page.ClientScript.RegisterStartupScript(this.GetType(), "refName", "checkLayer()", true);
}
</code>
Har jag uppfattat det korrekt?
Vill inte garrantera att min kod är helt korrekt, men du borde kunna göra något åt det hållet...
Sv:Javascript i master page
Sv: Javascript i master page
Sv:Javascript i master page
Jag har denna kod i Master:
<code>
<script language="javascript" type="text/javascript">
function checkLayer()
{
var info = document.getElementById("layInfo");
var menu = document.getElementById("laySubMenu");
var adver = document.getElementById("layAdvertise");
var defaultHeight = 800;
var infoHeight = info.offsetHeight;
var menuHeight = menu.offsetHeight;
var adverHeight = adver.offsetHeight;
if(menuHeight < infoHeight){
menu.style.height = (infoHeight - 11) + 'px';
adver.style.height = (infoHeight - 11) + 'px';
}
if(infoHeight < menuHeight){
info.style.height = (menuHeight - 11) + 'px';
adver.style.height = (menuHeight - 11) + 'px';
}
</script>
// Sist i Master anropar jag funktionen...
<script language="javascript" type="text/javascript">
checkLayer();
</script>
</form>
</body>
</html>
</code>
Så långt fungerar allt som det ska, men problemet kommer när jag använder Updatepanel i content page, jag missade att skriva det inna, sorry för det. Så problemet är alltså hur kan jag anropa denna funktion i detta fall jag visar här nedan? Det är alltså när man klickar på länken i GridView1 som jag vill anropa funktionen, jag har försökt lägga in detta i klickeventet:
Page.ClientScript.RegisterStartupScript(this.GetType(), "refName", "checkLayer();", true);
Det fungerar inte.
<code>
<asp:GridView ID="GridView1" AutoGenerateColumns="False" runat="server" DataSourceID="sqlGetFetcherHeaders"
ShowHeader="False" DataKeyNames="UserName" OnSelectedIndexChanged="GridView1_SelectedIndexChanged">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<tr>
<td><%#Eval("name") %></td>
<td><%#Eval("city") %></td>
<td><%#Eval("IsApproved") %></td>
<td>
<asp:LinkButton ID="LinkButton1" runat="server" CommandName="Select" Text="Välj" />
</td>
</tr>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<Triggers>
<%--<asp:PostBackTrigger ControlID="GridView1" />--%>
<asp:AsyncPostBackTrigger ControlID="GridView1" />
</Triggers>
<ContentTemplate>
<asp:GridView ID="GridView2" runat="server" DataSourceID="sqlGetFetcherDetails"
AutoGenerateColumns="false" ShowHeader="false">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<div style="width:300px;">
<span class="boldText">Namn och adressuppgifter</span><br />
<span class="regText">
<%#Eval("fName") %> <%#Eval("lName") %><br />
<%#Eval("address") %><br />
<%#Eval("zipCode") %> <%#Eval("city") %>
</span>
<hr />
<span class="boldText">Kontaktuppgifter</span><br />
<span class="regText">
<%#Eval("email") %><br />
<%#Eval("phone") %><br />
<%#Eval("cellPhone") %>
</span>
<hr />
<span class="boldText">Hämtuppgifter</span><br />
<span class="regText">
Sms: <%#Eval("sms") %><br />
Minsta vikt: <%#Eval("minFetch") %> kg<br />
<asp:Repeater ID="Repeater1" runat="server" DataSourceID="sqlGetCountyForUser">
<ItemTemplate>
<%#Eval("county") %><br />
</ItemTemplate>
</asp:Repeater>
</span>
<hr />
<span class="boldText">Övriga uppgifter</span><br />
<span class="regText">
Lösenord: <%#Eval("password") %><br />
Användarnamn: <%#Eval("userName") %><br />
UserID: <%#Eval("userID") %><br />
Ansökningsdatum: <%#Eval("CreateDate") %><br />
Godkänd: <%#Eval("isApproved") %><br />
Godkänd datum: <%#Eval("approveDate") %><br />
Senast inloggad: <%#Eval("LastLoginDate") %><br />
Misslyckade inloggningsförsök: <%#Eval("failedPasswordAttemptCount") %><br />
Konto spärrat: <%#Eval("IslockedOut") %>
</span><br />
<asp:LinkButton ID="lbApproveFetcher" CommandArgument='<%#Eval("userID") %>'
CommandName="cmdApproveFetcher" runat="server" OnCommand="lbApproveFetcher_OnCommand">Godkänn hämtare</asp:LinkButton>
</div>
<asp:Label ID="lblCellPhone" runat="server" Visible="false"><%#Eval("cellPhone") %></asp:Label>
<asp:Label ID="lblEmail" runat="server" Visible="false"><%#Eval("email") %></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:Label ID="lblDbError" runat="server" />
</ContentTemplate>
</asp:UpdatePanel>
</code>Sv: Javascript i master page
Sv:Javascript i master page