Привет всем,
Я использую Datagridview в asp.net. Я использовал пользовательские кнопки вверх и вниз в сетке данных вместе с опциями редактирования, удаления и подкачки.
альтернативный текст http://i41.tinypic.com/90dbmx.jpg
Я управляю кнопками вверх-вниз, вызывая события в строке команды, и код такой, как показано ниже
string command = e.CommandName;
Response.Write(e.CommandArgument.ToString());
int index = Convert.ToInt32(e.CommandArgument.ToString());
int count = GridView1.Rows.Count;
int keyValue = Convert.ToInt32(GridView1.Rows[index].Cells[1].Text);
string value = GridView1.Rows[index].Cells[4].Text;
SqlConnection conn = new SqlConnection(SqlDataSource1.ConnectionString);
SqlCommand cmd = new SqlCommand();
if (command == "up")
{
if (index > 0)
{
index = index - 1;
int keyValue1 = Convert.ToInt32(GridView1.Rows[index].Cells[1].Text);
string value1 = GridView1.Rows[index].Cells[4].Text;
cmd.Connection = conn;
cmd.CommandText = "UPDATE [category] SET [order_id] = '" + value + "' WHERE [category_id]=" + keyValue1 + ";UPDATE [category] SET [order_id] = '" + value1 + "' WHERE [category_id]=" + keyValue + ";";
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
}
}
else if (command == "down")
{
if (index < count - 1)
{
index = index + 1;
int keyValue1 = Convert.ToInt32(GridView1.Rows[index].Cells[1].Text);
string value1 = GridView1.Rows[index].Cells[4].Text;
cmd.Connection = conn;
cmd.CommandText = "UPDATE [category] SET [order_id] = '" + value + "' WHERE [category_id]=" + keyValue1 + ";UPDATE [category] SET [order_id] = '" + value1 + "' WHERE [category_id]=" + keyValue + ";";
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
}
}
Response.Redirect("Default.aspx");
Файл конструктора
<div>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
DataKeyNames="category_id" DataSourceID="SqlDataSource1"
AllowPaging="True" onrowcommand="GridView1_RowCommand"
onselectedindexchanged="GridView1_SelectedIndexChanged"
AllowSorting="True">
<Columns>
<asp:CommandField ShowDeleteButton="True" ShowEditButton="True" />
<asp:BoundField DataField="category_id" HeaderText="category_id"
InsertVisible="False" ReadOnly="True" SortExpression="category_id" />
<asp:BoundField DataField="categoryname" HeaderText="categoryname"
SortExpression="categoryname" />
<asp:BoundField DataField="navigation_url" HeaderText="navigation_url"
SortExpression="navigation_url" />
<asp:BoundField DataField="order_id" HeaderText="order_id"
SortExpression="order_id" />
<asp:ButtonField ButtonType="Image" CommandName="up" Text="up"
ImageUrl="~/images/up.png" />
<asp:ButtonField ButtonType="Image" CommandName="down"
ImageUrl="~/images/down.png" Text="down" />
<asp:TemplateField>
<ItemTemplate>
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="btnSubmit"/>
</ItemTemplate>
</asp:TemplateField>
<asp:ButtonField CommandName="edit" Text="Edit" />
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:pp_cmsConnectionString %>"
DeleteCommand="DELETE FROM [category] WHERE [category_id] = @category_id"
InsertCommand="INSERT INTO [category] ([categoryname], [navigation_url], [order_id]) VALUES (@categoryname, @navigation_url, @order_id)"
SelectCommand="SELECT * FROM [category] order by order_id"
UpdateCommand="UPDATE [category] SET [categoryname] = @categoryname, [navigation_url] = @navigation_url, [order_id] = @order_id WHERE [category_id] = @category_id">
<DeleteParameters>
<asp:Parameter Name="category_id" Type="Int32" />
</DeleteParameters>
<UpdateParameters>
<asp:Parameter Name="categoryname" Type="String" />
<asp:Parameter Name="navigation_url" Type="String" />
<asp:Parameter Name="order_id" Type="Decimal" />
<asp:Parameter Name="category_id" Type="Int32" />
</UpdateParameters>
<InsertParameters>
<asp:Parameter Name="categoryname" Type="String" />
<asp:Parameter Name="navigation_url" Type="String" />
<asp:Parameter Name="order_id" Type="Decimal" />
</InsertParameters>
</asp:SqlDataSource>
</div>
После этого мое редактирование, удаление и подкачка страниц не работают из-за конфликтов событий. Может ли кто-нибудь PLZ помочь мне в этом, так что я смогу использовать как пользовательские кнопки (вверх и вниз) и редактировать, удалять и функции подкачки.