Sign In| Join
Get Help:Ask a Question in our Forums|Report a Bug|More Help Resources
Star
10672 Points
2426 Posts
May 11, 2012 09:07 PM|LINK
Here is a sample code. It allows to edit a row only if inserted time and the editing time are between 08:00 hrs and 14:00 hrs on a date. You may customize this and use asper your actual requirements.
in form
<form id="form1" runat="server"> <asp:GridView ID="GridView1" runat="server" PageSize="2" AutoGenerateColumns="False" DataSourceID="SqlDataSource1" onrowdatabound="GridView1_RowDataBound"> <Columns> <asp:BoundField DataField="insertedAT" HeaderText="insertedAT" SortExpression="insertedAT" /> <asp:BoundField DataField="insertedby" HeaderText="insertedby" SortExpression="insertedby" /> <asp:TemplateField HeaderText="Edit"> <ItemTemplate> <asp:Button ID="EditButton" runat="server" Height="26px" Text="Edit" CommandName ="Edit"/> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView> <br /> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:TestConnectionString %>" SelectCommand="SELECT [insertedAT], [insertedby] FROM [timecheck]"></asp:SqlDataSource> <br /> </form>
C#
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { Button btnEdit = (Button)(e.Row.FindControl("EditButton")); DateTime insertedTime = Convert.ToDateTime(e.Row.Cells[0].Text.Trim()); DateTime editTime = DateTime.Now; DateTime thisDay = DateTime.Today; string AllowedEditS1 = thisDay.ToString("dd-MM-yyyy") + " 08:00"; string AllowedEditE1 = thisDay.ToString("dd-MM-yyyy") + " 14:00"; DateTime allowedEditStart1 = Convert.ToDateTime(AllowedEditS1); DateTime allowedEditEnd1 = Convert.ToDateTime(AllowedEditE1); bool isTimeBetween = insertedTime >= allowedEditStart1 && insertedTime <= allowedEditEnd1; bool editAllowed = editTime >= allowedEditStart1 && editTime <= allowedEditEnd1; if (isTimeBetween == true && editAllowed == false) { btnEdit.Enabled = false; } }
basheerkal
Star
10672 Points
2426 Posts
Re: Locking editing in a gridview
May 11, 2012 09:07 PM|LINK
Here is a sample code. It allows to edit a row only if inserted time and the editing time are between 08:00 hrs and 14:00 hrs on a date. You may customize this and use asper your actual requirements.
in form
<form id="form1" runat="server"> <asp:GridView ID="GridView1" runat="server" PageSize="2" AutoGenerateColumns="False" DataSourceID="SqlDataSource1" onrowdatabound="GridView1_RowDataBound"> <Columns> <asp:BoundField DataField="insertedAT" HeaderText="insertedAT" SortExpression="insertedAT" /> <asp:BoundField DataField="insertedby" HeaderText="insertedby" SortExpression="insertedby" /> <asp:TemplateField HeaderText="Edit"> <ItemTemplate> <asp:Button ID="EditButton" runat="server" Height="26px" Text="Edit" CommandName ="Edit"/> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView> <br /> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:TestConnectionString %>" SelectCommand="SELECT [insertedAT], [insertedby] FROM [timecheck]"></asp:SqlDataSource> <br /> </form>C#
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { Button btnEdit = (Button)(e.Row.FindControl("EditButton")); DateTime insertedTime = Convert.ToDateTime(e.Row.Cells[0].Text.Trim()); DateTime editTime = DateTime.Now; DateTime thisDay = DateTime.Today; string AllowedEditS1 = thisDay.ToString("dd-MM-yyyy") + " 08:00"; string AllowedEditE1 = thisDay.ToString("dd-MM-yyyy") + " 14:00"; DateTime allowedEditStart1 = Convert.ToDateTime(AllowedEditS1); DateTime allowedEditEnd1 = Convert.ToDateTime(AllowedEditE1); bool isTimeBetween = insertedTime >= allowedEditStart1 && insertedTime <= allowedEditEnd1; bool editAllowed = editTime >= allowedEditStart1 && editTime <= allowedEditEnd1; if (isTimeBetween == true && editAllowed == false) { btnEdit.Enabled = false; } }(Talk less..Work more)