リピーターがあり、このリピーターの中に UpdatePanel があります。この UpdatePanel には非表示の があり、Repeater_ItemCommand イベントに表示したいと考えています。私はこれを理解するのに苦労しています.私はJquery-guruではありません.. Firebug-consoleでは、次のように書かれています: ReferenceError: showError is not defined
これは UpdatePanel です (div #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);
}
}
}
誰かが私が間違っていることを理解するのを手伝ってもらえますか?