Hi Andrew,
I actually want to do this with an AJAX Toolkit ReorderList but I think it
would work the same with a GridView or other databound list control. Is
there a tried and tested way of stoping a user when they attempt to edit a
row when another row is already being edited?
To do this one option is to add a hidden input field in the HTML. If the
control is in edit mode, set its value to a specific value. When user click
the "Edit" button, check the value of this hidden field. If it shows the
control is in edit mode, stop postback.
The following code shows how to do that. I use GridView here.
aspx:
<script type="text/javascript">
function Check() {
if (document.getElementById("input1").value == "1") {
return false;}
}
</script>
<input id="input1" runat="server"/>
<asp:GridView ID="GridView1" runat="server"
AutoGenerateColumns="True"
DataKeyNames="CustomerID" DataSourceID="SqlDataSource1"
EmptyDataText="There are no data records to display."
onprerender="GridView1_PreRender">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton OnClientClick="return Check()"
ID="LinkButton1" runat="server" CommandName="Edit">Edit</asp:LinkButton>
</ItemTemplate>
<EditItemTemplate>
<asp:LinkButton ID="LinkButton3" runat="server"
CommandName="Update">Update</asp:LinkButton>
<asp:LinkButton ID="LinkButton2" runat="server"
CommandName="Cancel">Cancel</asp:LinkButton>
</EditItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
aspx.cs:
protected void GridView1_PreRender(object sender, EventArgs e)
{
if (GridView1.EditIndex != -1)
{
this.input1.Value = "1";
}
else
{
this.input1.Value = "0";
}
}
Please test it to see if it works. If you have additional questions please
feel free to ask.
Regards,
Allen Chen
Microsoft Online Support
Delighting our customers is our #1 priority. We welcome your comments and
suggestions about how we can improve the support we provide to you. Please
feel free to let my manager know what you think of the level of service
provided. You can send feedback directly to my manager at:
(e-mail address removed).
==================================================
Get notification to my posts through email? Please refer to
http://msdn.microsoft.com/en-us/subscriptions/aa948868.aspx#notifications.
Note: MSDN Managed Newsgroup support offering is for non-urgent issues
where an initial response from the community or a Microsoft Support
Engineer within 2 business day is acceptable. Please note that each follow
up response may take approximately 2 business days as the support
professional working with you may need further investigation to reach the
most efficient resolution. The offering is not appropriate for situations
that require urgent, real-time or phone-based interactions. Issues of this
nature are best handled working with a dedicated Microsoft Support Engineer
by contacting Microsoft Customer Support Services (CSS) at
http://msdn.microsoft.com/en-us/subscriptions/aa948874.aspx
==================================================
This posting is provided "AS IS" with no warranties, and confers no rights.