[英]After button click result is displayed in label few seconds in gridview using js/jquery.The gridview in contentpage of masterpage
我有一个母版页并在其中添加scriptmanager。asd.master页是
<body id="myPage" data-spy="scroll" data-target=".navbar" data-offset="60">
<form id="form1" runat="server">
<nav class="navbar navbar-inverse navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#myNavbar">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="#myPage">Logo</a>
</div>
<div class="collapse navbar-collapse" id="myNavbar">
<ul class="nav navbar-nav">
<li><a href="#home">Home</a></li>
<li><a href="#services">Services</a></li>
<li><a href="#values">Values</a></li>
<li><a href="#about">About us</a></li>
<li><a href="#contact">Contact us</a></li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li><a href="my account.aspx"><span class="glyphicon glyphicon-user" style="color:orange"></span> My Account</a></li>
</ul>
</div>
</div>
</nav>
<div class="jumbotron text-center">
<h2>
<asp:Label ID="headinglbl" runat="server" CssClass="control-label" Text="Label"></asp:Label></h2>
<asp:Label ID="usrvstlbl" runat="server" CssClass="control-label" Text="" ForeColor="Red"></asp:Label>
</div>
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>
</form>
</body>
在该主页中,我有4个内容页面,这些内容页面具有gridview和updatepanels。 内容页面之一是...。
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<div class="container text-center">
<div class="row">
<div class="col-sm-3">
<div class="well">
<p>
</p>
</div>
</div>
<div class="col-sm-7">
<div class="row">
<div class="col-sm-12">
<div class="panel panel-default text-left">
<div class="panel-body">
<asp:GridView ID="GridView1" runat="server" CssClass="col-sm-12" AutoGenerateColumns="False" OnRowCommand="GridView1_RowCommand" OnPageIndexChanging="GridView1_PageIndexChanging" CellPadding="4" ForeColor="#333333" GridLines="None" AllowPaging="True" PageSize="8">
<AlternatingRowStyle BackColor="White" />
<Columns>
<asp:TemplateField>
<ItemTemplate>
<div class="form-group col-sm-offset-1">
<asp:Label ID="namelbl" runat="server" CssClass="control-label" Text='<%# Eval("LoginUserName") %>'></asp:Label><br />
<asp:Label ID="datelbl" runat="server" CssClass="control-label" Text='<%# Eval("Date", "{0:M-dd-yyyy}") %>'></asp:Label>
</div>
<div class=" col-sm-offset-1">
<asp:Label ID="bkmsglbl" runat="server" CssClass="control-label" Text='<%# Eval("BookInfo") %>'></asp:Label>
</div>
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="row">
<div class="col-sm-offset-1 col-sm-8 form-group">
<asp:Label ID="avlbkserrlbl" runat="server" CssClass="control-label" Text="" ForeColor="Red"></asp:Label><br />
<asp:Label ID="avlbkslbl" runat="server" CssClass="control-label" Text="comments:"></asp:Label>
<asp:TextBox ID="avlbkstxt" runat="server" CssClass="form-control txtbdrclr" TextMode="MultiLine" Rows="2" ToolTip="about book" ValidationGroup="avlbksgrp"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="avlbkstxt" ErrorMessage="*Fill this" ValidationGroup="avlbksgrp" ForeColor="Red"></asp:RequiredFieldValidator>
</div>
</div>
<div class="row">
<div class="col-sm-offset-1 col-sm-11 form-group">
<asp:Button ID="Button1" runat="server" CssClass="btn btnbtn btn-success" Text="Post" ValidationGroup="avlbksgrp" CommandArgument='<%# Eval("ConversationId") %>' CommandName="avlconvrsinsrt" />
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<EmptyDataTemplate>
<div class="emptytemp">
At present we don't have any result's from your request....
</div>
</EmptyDataTemplate>
<PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
<RowStyle BackColor="#EFF3FB" />
</asp:GridView>
</div>
</div>
</div>
</div>
</div>
<div class="col-sm-2 well">
</div>
</div>
</div>
<script type="text/javascript">
function hideuseravl() {
window.setTimeout(function () {
var label = document.getElementById('<%= avlbkserrlbl.ClientID %>');
if (label != null) {
label.style.display = 'none';
}
}, 6000);
}
</script>
</asp:Content>
然后我将数据绑定到asdf.aspx.cs中的gridview
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
GridView1.DataSource = dataaccesslayer.getallavlblbks();
GridView1.DataBind();
}
}
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "avlconvrsinsrt")
{
string logid = Session["uid"].ToString();
string loguname = Session["uname"].ToString();
string converid = e.CommandArgument.ToString();
int rowindx = ((GridViewRow)((Button)e.CommandSource).NamingContainer).RowIndex;
string avlbkmsg = ((TextBox)GridView1.Rows[rowindx].FindControl("avlbkstxt")).Text;
Label grderrlbl = (Label)GridView1.Rows[rowindx].FindControl("avlbkserrlbl");
if (avlbkmsg == "")
{
grderrlbl.Text = "Please enter any text";
}
else
{
dataaccesslayer avlcomtinrtobj = new dataaccesslayer();
avlcomtinrtobj.avlbkcommtinsrt(converid, logid, loguname, avlbkmsg);
grderrlbl.Text = "Your commant successfully placed....";
System.Web.UI.ScriptManager.RegisterClientScriptBlock(Page, typeof(Page), "Script", "hideuseravl();", true);
}
}
}
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
GridView1.DataSource = dataaccesslayer.getallavlblbks();
GridView1.DataBind();
}
在此代码中,如果提交成功,则在填充文本框后单击gridview中的按钮,然后在labelid中显示一条消息:“ grderrlbl”。我只想在此标签后几秒钟显示此标签,然后隐藏labelid“ grderrlbl”。
我尝试了这个,但是没有用。
function hideuseravl() {
window.setTimeout(function () {
var label = document.getElementById('<%= avlbkserrlbl.ClientID %>');
if (label != null) {
label.style.display = 'none';
}
}, 6000);
}
textboxid“ avlbkstxt”有一个必填字段验证器,当我单击不带填充文本框的按钮时,此必填字段将显示gridview中的所有文本框。我想在单击按钮的特定行中显示必填字段。
这是您想要的完整(简化)示例。
<%-- .aspx --%>
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<div>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="CategoryID" DataSourceID="sqlCat" OnRowCommand="GridView1_RowCommand">
<Columns>
<asp:TemplateField HeaderText="CategoryName" SortExpression="CategoryName">
<ItemTemplate>
<asp:UpdatePanel runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Eval("CategoryID") %>'></asp:Label>
<asp:Label ID="Label2" runat="server" Text=""></asp:Label>
<asp:TextBox ID="TextBox1" runat="server" Text=""></asp:TextBox>
<asp:RequiredFieldValidator ErrorMessage="required" ControlToValidate="TextBox1" runat="server"
ValidationGroup='<%#Eval("CategoryID","grp{0}") %>' />
<%-- diff valGr for each row --%>
<asp:Button Text="send" runat="server" ValidationGroup='<%#Eval("CategoryID","grp{0}") %>' CommandName="sendMsg" />
</ContentTemplate>
</asp:UpdatePanel>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="sqlCat" runat="server" ConnectionString="<%$ ConnectionStrings:NWind %>" SelectCommand="SELECT [CategoryID], [CategoryName] FROM [Categories]"></asp:SqlDataSource>
</div>
<script type="text/javascript">
function showMsg(elId) {
var el = document.getElementById(elId);
el.style.display = 'inline';
setTimeout(function () {
el.style.display = 'none';
}, 6000);
}
</script>
后面的代码
//.cs
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "sendMsg")
{
//Find row in easy way
GridViewRow row = ((Button)e.CommandSource).NamingContainer as GridViewRow;
Label lblErr = row.FindControl("Label2") as Label;
TextBox txt = row.FindControl("TextBox1") as TextBox;
if (txt.Text == "test")//put your logic instead
{
lblErr.Text = "OK";
}
else
{
lblErr.Text = "Must be \"test\"";
}
//register code (function) which will run after AJAX update
//Note that label.id comes from here
ScriptManager.RegisterStartupScript(this, this.GetType(), "myScript", "showMsg('" + lblErr.ClientID + "');", true);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.