У меня есть ретранслятор, и внутри этого ретранслятора у меня есть UpdatePanel. В этой UpdatePanel у меня есть скрытое, и я хочу отобразить его в событии Repeater_ItemCommand. Я struggeling выяснить это, и я не Jquery-гуру .. В Firebug-консоль он говорит: ReferenceError: ShowError не определенПытается запустить функцию JQuery из UpdatePanel внутри репитера (по ItemCommand)
Это UpdatePanel (ДИВ #errorMessage находится в нижней части):
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<%# GetComments (DataBinder.Eval(Container, "DataItem.id")) %>
<div class="contact_form">
<ul>
<li>
<h2>Skriv en kommentar til oss!</h2>
</li>
<li>
<asp:TextBox ID="txtName" runat="server" CssClass="txtBox" placeholder="Ditt navn" />
<span class="form_hint">Ditt navn skal stå her</span>
</li>
<li>
<asp:TextBox ID="txtCaptcha" runat="server" CssClass="txtBox" placeholder="Skriv resultatet av 10 pluss 6 her" />
<span class="form_hint">Du klarer vel å regne ut 10+6? :-)</span>
</li>
<li>
<asp:TextBox ID="txtComment" runat="server" TextMode="MultiLine" placeholder="Din kommentar" />
</li>
<li>
<asp:Button ID="cmdSaveComment" CssClass="button" runat="server" CommandName="SaveComment" CommandArgument='<%# Eval("id")%>' Text="Puliser kommentar" />
</li>
</ul>
<div id="#errorMessage<%# Eval("id") %>" style="display:none;">
<p>Du må skrive resultatet av 10+6 i boksen for å få publisert kommentaren</p>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
в моем файле .js, я сделал эту функцию:
$(document).ready(function showError (divId) {
$id = divId;
$("#errorMessage" + $id + '').show("slide");
return false;
});
А в коде, где я хочу, чтобы вызвать это:
protected void RepeaterBlog_ItemCommand(Object Sender, RepeaterCommandEventArgs e)
{
if (e.CommandName == "SaveComment")
{
int blogID = Int32.Parse(e.CommandArgument.ToString());
string name = ((TextBox)e.Item.FindControl("txtName")).Text;
string comment = ((TextBox)e.Item.FindControl("txtComment")).Text;
string captcha = ((TextBox)e.Item.FindControl("txtCaptcha")).Text;
if (captcha == "16")
{
if (name == "")
{
name = "Anonym";
}
name = name.Replace("'", "'");
comment = comment.Replace("'", "'");
dh.NewComment(name, comment, blogID);
GetItems();
}
else
{
//show error box
string js = "$(document).ready(function() { showError('" + blogID.ToString() + "'); });";
ScriptManager.RegisterStartupScript(this, GetType(), blogID.ToString(), js, true);
//string js = "$(document).ready(function() {$(document).on('show', function() { $('#errorMessage" + blogID.ToString() + "').show('slide');return false;})});";
//ScriptManager.RegisterStartupScript(this, this.GetType(), blogID.ToString(), js, true);
}
}
}
Может кто-нибудь, пожалуйста, помогите мне разобраться, что я делаю неправильно?
Я сделал то, что вы предлагали. Удалите только теги