在点击jquery弹出对话框中出现的按钮后,有人可以教我如何触发后面的asp代码吗?我希望我的数据发送到服务器端
这是我的表格:
<div id="dialog" hidden>
fullname:<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox></br>
password:<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox></br>
email:<asp:TextBox ID="TextBox3" runat="server"></asp:TextBox></br>
<asp:Button ID="Submit" runat="server" Text="Button" onclick="Button1_Click" hidden/>
</div>
我的jquery对话框将弹出我的表单:
<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>
<script type="text/javascript" language="javascript" >
jQuery(document).ready(function () {
$('#<%=open.ClientID%>').click(function () {
$('#dialog').dialog({ modal: true,
height: 500,
width: 600,
resizable: false,
show: 'fold',
hide: 'fold',
}
});
return false;
});
});
这是我的asp代码。我正在使用linq在gridview中显示数据:
protected void Page_Load(object sender, EventArgs e)
{
showData();
}
protected void showData()
{
using(AutoBetDataContext db = new AutoBetDataContext())
{
var query = from u in db.UserDetails
select u;
GridView.DataSource= query;
GridView.DataBind();
}
}
protected void Button1_Click(object sender, EventArgs e)
{
using (AutoBetDataContext db = new AutoBetDataContext())
{
UserDetail user = new UserDetail();
user.Fullname = TextBox1.Text;
user.Password = TextBox2.Text;
user.EmailAddress = TextBox3.Text;
db.UserDetails.InsertOnSubmit(user);
db.SubmitChanges();
showData();
}
}
}
答案 0 :(得分:1)
单击对话框时,您似乎在返回false。
});
return false;
这样可以防止发生回发..
在此尝试返回true 。
如果这没有帮助,您必须明确调用 __ doPostback()
答案 1 :(得分:0)
我怀疑你的问题是command
按钮 - 它似乎与帖子后面有关,页面刷新,你的对话框无法显示。
点击open
并显示对话框,然后return false
以阻止回发。
然后在对话框中输入详细信息并点击ID为Submit
的按钮 - 这会触发回发,从而触发事件Button1_Click
。
要阻止表单填充新数据,我个人会更改以下内容:
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{ // Only do this if the page is a fresh request.
showData();
}
}
否则,页面将加载,将加载新的详细信息。
然而,由于页面现在被回发,jQuery对此一无所知,因此对话被隐藏(按照正常的页面加载)。
您可以随时拥有隐藏字段:
<asp:hidden id="hdnOpenDialogue" runat="server" value="false" />
然后在Button1_Click
运行hdnOpenDialogue.value = "true";
然后使用以下jQuery:
$('[id$="hdnOpenDialogue"]').each(function(idx) {
if($(this).attr("value") == "true") {
$('#dialog').dialog({ modal: true, height: 500,
width: 600, resizable: false,
how: 'fold', hide: 'fold',
}
});
};
});
如果隐藏字段设置为“true”
,则会打开对话框这是一个关于如何在回发后保持对话开放的理论,而不是这个逐字的副本,因为我刚刚把它编成了我的头顶!