在 VisualStudio 2012 中,GridView 上启用的 Select 按钮实际上并没有 select 在 ASP.NET 中的一行
Enabled Select button on GridView does not actually select a row in ASP.NET with VisualStudio 2012
所以我有一个 GridView(如下),在设置 SQLDataSource 时我启用了 selection。我已经为所有其他页面完成了此操作,但我不知道是什么阻止了这一功能。正如我在标题中所说的那样,当我在我的页面上单击 select 时,它实际上并没有 select 该行,我很茫然。
<asp:GridView ID="GridView1" runat="server" AllowPaging="True" AllowSorting="True" AutoGenerateColumns="False" DataSourceID="SqlDataSource1" EmptyDataText="There are no records to display." BackColor="White" BorderColor="#999999" BorderStyle="None" BorderWidth="1px" CellPadding="3" DataKeyNames="Workstation_ID" GridLines="Vertical" OnRowCommand="GridView1_RowCommand" OnSelectedIndexChanged="GridView1_SelectedIndexChanged">
<AlternatingRowStyle BackColor="Gainsboro" />
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton runat="server" ID="DeleteButton" text="Delete"
CommandName="delete"
OnClientClick="if (!window.confirm('Are you sure you want to delete this item?')) return false;" />
</ItemTemplate>
<FooterTemplate>
<asp:LinkButton runat="server" ID="InsertButton" text="Insert"
CommandName="Insert" OnClick="InsertButton_Click" />
</FooterTemplate>
</asp:TemplateField>
<asp:CommandField ShowEditButton="True" ShowSelectButton="True" />
<asp:BoundField DataField="Workstation_ID" HeaderText="Workstation_ID" InsertVisible="False" ReadOnly="True" SortExpression="Workstation_ID" Visible="False" />
<asp:TemplateField HeaderText="Model_Name" SortExpression="Model_Name">
<EditItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("Model_Name") %>'></asp:TextBox>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="insertModelName" runat="server"></asp:TextBox>
</FooterTemplate>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("Model_Name") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Operating_System" SortExpression="Operating_System">
<EditItemTemplate>
<asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("Operating_System") %>'></asp:TextBox>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="insertOS" runat="server"></asp:TextBox>
</FooterTemplate>
<ItemTemplate>
<asp:Label ID="Label2" runat="server" Text='<%# Bind("Operating_System") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="RAM" SortExpression="RAM">
<EditItemTemplate>
<asp:TextBox ID="TextBox3" runat="server" Text='<%# Bind("RAM") %>'></asp:TextBox>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="insertRAM" runat="server"></asp:TextBox>
</FooterTemplate>
<ItemTemplate>
<asp:Label ID="Label3" runat="server" Text='<%# Bind("RAM") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="HDD_Size" SortExpression="HDD_Size">
<EditItemTemplate>
<asp:TextBox ID="TextBox4" runat="server" Text='<%# Bind("HDD_Size") %>'></asp:TextBox>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="insertHDD" runat="server"></asp:TextBox>
</FooterTemplate>
<ItemTemplate>
<asp:Label ID="Label4" runat="server" Text='<%# Bind("HDD_Size") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Unused_HDDspace" SortExpression="Unused_HDDspace">
<EditItemTemplate>
<asp:TextBox ID="TextBox5" runat="server" Text='<%# Bind("Unused_HDDspace") %>'></asp:TextBox>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="insertUnusedHDD" runat="server"></asp:TextBox>
</FooterTemplate>
<ItemTemplate>
<asp:Label ID="Label5" runat="server" Text='<%# Bind("Unused_HDDspace") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Service_Tag" SortExpression="Service_Tag">
<EditItemTemplate>
<asp:TextBox ID="TextBox6" runat="server" Text='<%# Bind("Service_Tag") %>'></asp:TextBox>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="insertServiceTag" runat="server"></asp:TextBox>
</FooterTemplate>
<ItemTemplate>
<asp:Label ID="Label6" runat="server" Text='<%# Bind("Service_Tag") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Admin_Username" SortExpression="Admin_Username">
<EditItemTemplate>
<asp:TextBox ID="TextBox7" runat="server" Text='<%# Bind("Admin_Username") %>'></asp:TextBox>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="insertAdminUname" runat="server"></asp:TextBox>
</FooterTemplate>
<ItemTemplate>
<asp:Label ID="Label7" runat="server" Text='<%# Bind("Admin_Username") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Admin_Password" SortExpression="Admin_Password">
<EditItemTemplate>
<asp:TextBox ID="TextBox8" runat="server" Text='<%# Bind("Admin_Password") %>'></asp:TextBox>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="insertAdminPword" runat="server"></asp:TextBox>
</FooterTemplate>
<ItemTemplate>
<asp:Label ID="Label8" runat="server" Text='<%# Bind("Admin_Password") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Gateway" SortExpression="Gateway">
<EditItemTemplate>
<asp:TextBox ID="TextBox9" runat="server" Text='<%# Bind("Gateway") %>'></asp:TextBox>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="insertGateway" runat="server"></asp:TextBox>
</FooterTemplate>
<ItemTemplate>
<asp:Label ID="Label9" runat="server" Text='<%# Bind("Gateway") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Date_Last_verified" SortExpression="Date_Last_verified">
<EditItemTemplate>
<asp:TextBox ID="TextBox10" runat="server" Text='<%# Bind("Date_Last_verified") %>'></asp:TextBox>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="insertDate" runat="server"></asp:TextBox>
</FooterTemplate>
<ItemTemplate>
<asp:Label ID="Label10" runat="server" Text='<%# Bind("Date_Last_verified") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Location_ID" SortExpression="Location_ID">
<EditItemTemplate>
<asp:TextBox ID="TextBox11" runat="server" Text='<%# Bind("Location_ID") %>'></asp:TextBox>
</EditItemTemplate>
<FooterTemplate>
<asp:DropDownList ID="LocationDDL" runat="server" DataSourceID="ddlLocationSQL" DataTextField="Location_Name" DataValueField="Location_ID">
</asp:DropDownList>
<asp:SqlDataSource ID="ddlLocationSQL" runat="server" ConnectionString="<%$ ConnectionStrings:itassetmgmtConnectionString1 %>" SelectCommand="SELECT [Location_ID], [Location_Name] FROM [Locations]"></asp:SqlDataSource>
</FooterTemplate>
<ItemTemplate>
<asp:Label ID="Label11" runat="server" Text='<%# Bind("Location_ID") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="User_ID" SortExpression="User_ID">
<EditItemTemplate>
<asp:TextBox ID="TextBox12" runat="server" Text='<%# Bind("User_ID") %>'></asp:TextBox>
</EditItemTemplate>
<FooterTemplate>
<asp:DropDownList ID="ddlUserID" runat="server" DataSourceID="UserSQL" DataTextField="Username" DataValueField="User_ID">
</asp:DropDownList>
<asp:SqlDataSource ID="UserSQL" runat="server" ConnectionString="<%$ ConnectionStrings:itassetmgmtConnectionString1 %>" SelectCommand="SELECT [User_ID], [Firstname], [Lastname], [Username] FROM [Users]"></asp:SqlDataSource>
</FooterTemplate>
<ItemTemplate>
<asp:Label ID="Label12" runat="server" Text='<%# Bind("User_ID") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Dept_ID" SortExpression="Dept_ID">
<EditItemTemplate>
<asp:TextBox ID="TextBox13" runat="server" Text='<%# Bind("Dept_ID") %>'></asp:TextBox>
</EditItemTemplate>
<FooterTemplate>
<asp:DropDownList ID="DropDownList2" runat="server" DataSourceID="DeptSQL" DataTextField="Department" DataValueField="Dept_ID">
</asp:DropDownList>
<asp:SqlDataSource ID="DeptSQL" runat="server" ConnectionString="<%$ ConnectionStrings:itassetmgmtConnectionString1 %>" SelectCommand="SELECT * FROM [Departments]"></asp:SqlDataSource>
</FooterTemplate>
<ItemTemplate>
<asp:Label ID="Label13" runat="server" Text='<%# Bind("Dept_ID") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Maintenance_ID" SortExpression="Maintenance_ID">
<EditItemTemplate>
<asp:TextBox ID="TextBox14" runat="server" Text='<%# Bind("Maintenance_ID") %>'></asp:TextBox>
</EditItemTemplate>
<FooterTemplate>
<asp:DropDownList ID="ddlMaintenance" runat="server" DataSourceID="MaintenanceSQL" DataTextField="Maintenance_ID" DataValueField="Maintenance_ID">
</asp:DropDownList>
<asp:SqlDataSource ID="MaintenanceSQL" runat="server" ConnectionString="<%$ ConnectionStrings:itassetmgmtConnectionString1 %>" SelectCommand="SELECT * FROM [Maintenance]"></asp:SqlDataSource>
</FooterTemplate>
<ItemTemplate>
<asp:Label ID="Label14" runat="server" Text='<%# Bind("Maintenance_ID") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Workstation_Name" SortExpression="Workstation_Name">
<EditItemTemplate>
<asp:TextBox ID="TextBox15" runat="server" Text='<%# Bind("Workstation_Name") %>'></asp:TextBox>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="insertWstationName" runat="server"></asp:TextBox>
</FooterTemplate>
<ItemTemplate>
<asp:Label ID="Label15" runat="server" Text='<%# Bind("Workstation_Name") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<FooterStyle BackColor="#CCCCCC" ForeColor="Black" Wrap="False" />
<HeaderStyle BackColor="#34397D" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#999999" ForeColor="Black" HorizontalAlign="Center" />
<RowStyle BackColor="#EEEEEE" ForeColor="Black" />
<SelectedRowStyle BackColor="#008A8C" Font-Bold="True" ForeColor="White" />
<SortedAscendingCellStyle BackColor="#F1F1F1" />
<SortedAscendingHeaderStyle BackColor="#0000A9" />
<SortedDescendingCellStyle BackColor="#CAC9C9" />
<SortedDescendingHeaderStyle BackColor="#000065" />
隐藏代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace WebApplication3
{
public partial class Workstation : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
string ddl = DropDownList1.SelectedValue;
if (ddl=="Location_ID")
{
RegularExpressionValidator1.Enabled = true;
RegularExpressionValidator1.ValidationExpression = "^[0-9]*$";
string FilterExpression = "Convert(Location_ID , 'System.String') LIKE '%{0}%'";
SqlDataSource1.FilterParameters.Clear();
SqlDataSource1.FilterParameters.Add(new ControlParameter(DropDownList1.SelectedValue, "TextBox1", "Text"));
SqlDataSource1.FilterExpression = FilterExpression;
} else if (ddl == "User_ID")
{
RegularExpressionValidator1.Enabled = true;
RegularExpressionValidator1.ValidationExpression = "^[0-9]*$";
string FilterExpression = "Convert(User_ID , 'System.String') LIKE '%{0}%'";
SqlDataSource1.FilterParameters.Clear();
SqlDataSource1.FilterParameters.Add(new ControlParameter(DropDownList1.SelectedValue, "TextBox1", "Text"));
SqlDataSource1.FilterExpression = FilterExpression;
}
else if (ddl == "Dept_ID")
{
RegularExpressionValidator1.Enabled = true;
RegularExpressionValidator1.ValidationExpression = "^[0-9]*$";
string FilterExpression = "Convert(Dept_ID , 'System.String') LIKE '%{0}%'";
SqlDataSource1.FilterParameters.Clear();
SqlDataSource1.FilterParameters.Add(new ControlParameter(DropDownList1.SelectedValue, "TextBox1", "Text"));
SqlDataSource1.FilterExpression = FilterExpression;
}
else if (ddl == "Maintenance_ID")
{
RegularExpressionValidator1.Enabled = true;
RegularExpressionValidator1.ValidationExpression = "^[0-9]*$";
string FilterExpression = "Convert(Maintenance_ID , 'System.String') LIKE '%{0}%'";
SqlDataSource1.FilterParameters.Clear();
SqlDataSource1.FilterParameters.Add(new ControlParameter(DropDownList1.SelectedValue, "TextBox1", "Text"));
SqlDataSource1.FilterExpression = FilterExpression;
}
else
{
string FilterExpression = string.Concat(DropDownList1.SelectedValue, " LIKE '%{0}%'");
SqlDataSource1.FilterParameters.Clear();
SqlDataSource1.FilterParameters.Add(new ControlParameter(DropDownList1.SelectedValue, "TextBox1", "Text"));
SqlDataSource1.FilterExpression = FilterExpression;
}
GridView1.DataBind();
if (GridView1.Rows.Count == 0)
{
Add_Button.Visible = false;
}
else
{
Add_Button.Visible = true;
}
}
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
// Insert data if the CommandName == "Insert"
// and the validation controls indicate valid data...
if (e.CommandName == "Insert" && Page.IsValid)
{
// Insert new record...
SqlDataSource1.Insert();
}
}
protected void InsertButton_Click(object sender, EventArgs e)
{
// Programmatically reference Web controls in the inserting interface...
TextBox insertModelName = (TextBox)GridView1.FooterRow.FindControl("insertModelName");
TextBox insertOS = (TextBox)GridView1.FooterRow.FindControl("insertOS");
TextBox insertRAM = (TextBox)GridView1.FooterRow.FindControl("insertRAM");
TextBox insertHDD = (TextBox)GridView1.FooterRow.FindControl("insertHDD");
TextBox insertUnusedHDD = (TextBox)GridView1.FooterRow.FindControl("insertUnusedHDD");
TextBox insertServiceTag = (TextBox)GridView1.FooterRow.FindControl("insertServiceTag");
TextBox insertAdminUname = (TextBox)GridView1.FooterRow.FindControl("insertAdminUname");
TextBox insertAdminPword = (TextBox)GridView1.FooterRow.FindControl("insertAdminPword");
TextBox insertGateway = (TextBox)GridView1.FooterRow.FindControl("insertGateway");
TextBox insertDate = (TextBox)GridView1.FooterRow.FindControl("insertDate");
DropDownList LocationDDL = (DropDownList)GridView1.FooterRow.FindControl("LocationDDL");
DropDownList ddlUserID = (DropDownList)GridView1.FooterRow.FindControl("ddlUserID");
DropDownList DropDownList2 = (DropDownList)GridView1.FooterRow.FindControl("DropDownList2");
DropDownList ddlMaintenance = (DropDownList)GridView1.FooterRow.FindControl("ddlMaintenance");
TextBox insertWstationName = (TextBox)GridView1.FooterRow.FindControl("insertWstationName");
// Set the SQLDataSource's InsertParameters values...
SqlDataSource1.InsertParameters["Model_Name"].DefaultValue = insertModelName.Text;
SqlDataSource1.InsertParameters["Operating_System"].DefaultValue = insertOS.Text;
SqlDataSource1.InsertParameters["RAM"].DefaultValue = insertRAM.Text;
SqlDataSource1.InsertParameters["HDD_Size"].DefaultValue = insertHDD.Text;
SqlDataSource1.InsertParameters["Unused_HDDspace"].DefaultValue = insertUnusedHDD.Text;
SqlDataSource1.InsertParameters["Service_Tag"].DefaultValue = insertServiceTag.Text;
SqlDataSource1.InsertParameters["Admin_Username"].DefaultValue = insertAdminUname.Text;
SqlDataSource1.InsertParameters["Admin_Password"].DefaultValue = insertAdminPword.Text;
SqlDataSource1.InsertParameters["Gateway"].DefaultValue = insertGateway.Text;
SqlDataSource1.InsertParameters["Date_Last_verified"].DefaultValue = insertDate.Text;
SqlDataSource1.InsertParameters["Location_ID"].DefaultValue = LocationDDL.SelectedValue;
SqlDataSource1.InsertParameters["User_ID"].DefaultValue = ddlUserID.SelectedValue;
SqlDataSource1.InsertParameters["Dept_ID"].DefaultValue = DropDownList2.SelectedValue;
SqlDataSource1.InsertParameters["Maintenance_ID"].DefaultValue = ddlMaintenance.SelectedValue;
SqlDataSource1.InsertParameters["Workstation_Name"].DefaultValue = insertWstationName.Text;
}
protected void Add_Button_Click(object sender, EventArgs e)
{
if (GridView1.FooterRow.Visible == false)
{
GridView1.FooterRow.Visible = true;
Add_Button.Text = "Cancel";
}
else
{
GridView1.FooterRow.Visible = false;
Add_Button.Text = "Add New Record";
}
}
protected void MaintainedChkBx_CheckedChanged(object sender, EventArgs e)
{
GridViewRow r = GridView1.Rows[GridView1.SelectedIndex];
string mid = ((Label)r.FindControl("Label14")).Text;
if (MaintainedChkBx.Checked == true)
{
insrtMaintInfolbl.Visible = true;
dateLbl.Visible = true;
notesLbl.Visible = true;
maintDate.Visible = true;
notesTxtArea.Visible = true;
statusChkBx.Visible = true;
InsrtBtn.Visible = true;
MaintenanceTable.Visible = true;
if (mid == "")
{
MaintDataSource.SelectCommand = "Select * From Maintenance";
MaintDataSource.DataBind();
}
else
{
Convert.ToInt32(mid);
MaintDataSource.SelectCommand = "Select * From Maintenance Where Maintenance_ID=" + mid;
MaintDataSource.DataBind();
}
}
else
{
insrtMaintInfolbl.Visible = false;
dateLbl.Visible = false;
notesLbl.Visible = false;
maintDate.Visible = false;
notesTxtArea.Visible = false;
statusChkBx.Visible = false;
InsrtBtn.Visible = false;
MaintenanceTable.Visible = false;
}
}
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
MaintainedChkBx.Visible = true;
MaintainedChkBx.Checked = false;
GridView1.SelectedIndex = -1;
insrtMaintInfolbl.Visible = false;
dateLbl.Visible = false;
notesLbl.Visible = false;
maintDate.Visible = false;
notesTxtArea.Visible = false;
statusChkBx.Visible = false;
InsrtBtn.Visible = false;
MaintenanceTable.Visible = false;
}
protected void InsrtBtn_Click(object sender, EventArgs e)
{
string dte = maintDate.SelectedDate.ToString("d");
string notes = Request.Form["notesTxtArea"];
int chk;
if (statusChkBx.Checked == true)
{
chk = 1;
}
else
{
chk = 0;
}
string query = "INSERT INTO Maintenance (Status, Date, Notes) " +
"VALUES (" + chk + ", '" + dte + "', '" + notes + "')";
MaintDataSource.InsertCommand = query;
MaintDataSource.Insert();
}
protected void DeslctBtn_Click(object sender, EventArgs e)
{
MaintainedChkBx.Visible = false;
MaintainedChkBx.Checked = false;
GridView1.SelectedIndex = -1;
insrtMaintInfolbl.Visible = false;
dateLbl.Visible = false;
notesLbl.Visible = false;
maintDate.Visible = false;
notesTxtArea.Visible = false;
statusChkBx.Visible = false;
InsrtBtn.Visible = false;
MaintenanceTable.Visible = false;
}
}
}
GridView1.SelectedIndex = -1;
这一直在我的 SelectedIndexChanged
活动中。这导致了问题并且不允许我 select GridView 中的行。
所以我有一个 GridView(如下),在设置 SQLDataSource 时我启用了 selection。我已经为所有其他页面完成了此操作,但我不知道是什么阻止了这一功能。正如我在标题中所说的那样,当我在我的页面上单击 select 时,它实际上并没有 select 该行,我很茫然。
<asp:GridView ID="GridView1" runat="server" AllowPaging="True" AllowSorting="True" AutoGenerateColumns="False" DataSourceID="SqlDataSource1" EmptyDataText="There are no records to display." BackColor="White" BorderColor="#999999" BorderStyle="None" BorderWidth="1px" CellPadding="3" DataKeyNames="Workstation_ID" GridLines="Vertical" OnRowCommand="GridView1_RowCommand" OnSelectedIndexChanged="GridView1_SelectedIndexChanged">
<AlternatingRowStyle BackColor="Gainsboro" />
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton runat="server" ID="DeleteButton" text="Delete"
CommandName="delete"
OnClientClick="if (!window.confirm('Are you sure you want to delete this item?')) return false;" />
</ItemTemplate>
<FooterTemplate>
<asp:LinkButton runat="server" ID="InsertButton" text="Insert"
CommandName="Insert" OnClick="InsertButton_Click" />
</FooterTemplate>
</asp:TemplateField>
<asp:CommandField ShowEditButton="True" ShowSelectButton="True" />
<asp:BoundField DataField="Workstation_ID" HeaderText="Workstation_ID" InsertVisible="False" ReadOnly="True" SortExpression="Workstation_ID" Visible="False" />
<asp:TemplateField HeaderText="Model_Name" SortExpression="Model_Name">
<EditItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("Model_Name") %>'></asp:TextBox>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="insertModelName" runat="server"></asp:TextBox>
</FooterTemplate>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("Model_Name") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Operating_System" SortExpression="Operating_System">
<EditItemTemplate>
<asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("Operating_System") %>'></asp:TextBox>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="insertOS" runat="server"></asp:TextBox>
</FooterTemplate>
<ItemTemplate>
<asp:Label ID="Label2" runat="server" Text='<%# Bind("Operating_System") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="RAM" SortExpression="RAM">
<EditItemTemplate>
<asp:TextBox ID="TextBox3" runat="server" Text='<%# Bind("RAM") %>'></asp:TextBox>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="insertRAM" runat="server"></asp:TextBox>
</FooterTemplate>
<ItemTemplate>
<asp:Label ID="Label3" runat="server" Text='<%# Bind("RAM") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="HDD_Size" SortExpression="HDD_Size">
<EditItemTemplate>
<asp:TextBox ID="TextBox4" runat="server" Text='<%# Bind("HDD_Size") %>'></asp:TextBox>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="insertHDD" runat="server"></asp:TextBox>
</FooterTemplate>
<ItemTemplate>
<asp:Label ID="Label4" runat="server" Text='<%# Bind("HDD_Size") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Unused_HDDspace" SortExpression="Unused_HDDspace">
<EditItemTemplate>
<asp:TextBox ID="TextBox5" runat="server" Text='<%# Bind("Unused_HDDspace") %>'></asp:TextBox>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="insertUnusedHDD" runat="server"></asp:TextBox>
</FooterTemplate>
<ItemTemplate>
<asp:Label ID="Label5" runat="server" Text='<%# Bind("Unused_HDDspace") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Service_Tag" SortExpression="Service_Tag">
<EditItemTemplate>
<asp:TextBox ID="TextBox6" runat="server" Text='<%# Bind("Service_Tag") %>'></asp:TextBox>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="insertServiceTag" runat="server"></asp:TextBox>
</FooterTemplate>
<ItemTemplate>
<asp:Label ID="Label6" runat="server" Text='<%# Bind("Service_Tag") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Admin_Username" SortExpression="Admin_Username">
<EditItemTemplate>
<asp:TextBox ID="TextBox7" runat="server" Text='<%# Bind("Admin_Username") %>'></asp:TextBox>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="insertAdminUname" runat="server"></asp:TextBox>
</FooterTemplate>
<ItemTemplate>
<asp:Label ID="Label7" runat="server" Text='<%# Bind("Admin_Username") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Admin_Password" SortExpression="Admin_Password">
<EditItemTemplate>
<asp:TextBox ID="TextBox8" runat="server" Text='<%# Bind("Admin_Password") %>'></asp:TextBox>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="insertAdminPword" runat="server"></asp:TextBox>
</FooterTemplate>
<ItemTemplate>
<asp:Label ID="Label8" runat="server" Text='<%# Bind("Admin_Password") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Gateway" SortExpression="Gateway">
<EditItemTemplate>
<asp:TextBox ID="TextBox9" runat="server" Text='<%# Bind("Gateway") %>'></asp:TextBox>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="insertGateway" runat="server"></asp:TextBox>
</FooterTemplate>
<ItemTemplate>
<asp:Label ID="Label9" runat="server" Text='<%# Bind("Gateway") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Date_Last_verified" SortExpression="Date_Last_verified">
<EditItemTemplate>
<asp:TextBox ID="TextBox10" runat="server" Text='<%# Bind("Date_Last_verified") %>'></asp:TextBox>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="insertDate" runat="server"></asp:TextBox>
</FooterTemplate>
<ItemTemplate>
<asp:Label ID="Label10" runat="server" Text='<%# Bind("Date_Last_verified") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Location_ID" SortExpression="Location_ID">
<EditItemTemplate>
<asp:TextBox ID="TextBox11" runat="server" Text='<%# Bind("Location_ID") %>'></asp:TextBox>
</EditItemTemplate>
<FooterTemplate>
<asp:DropDownList ID="LocationDDL" runat="server" DataSourceID="ddlLocationSQL" DataTextField="Location_Name" DataValueField="Location_ID">
</asp:DropDownList>
<asp:SqlDataSource ID="ddlLocationSQL" runat="server" ConnectionString="<%$ ConnectionStrings:itassetmgmtConnectionString1 %>" SelectCommand="SELECT [Location_ID], [Location_Name] FROM [Locations]"></asp:SqlDataSource>
</FooterTemplate>
<ItemTemplate>
<asp:Label ID="Label11" runat="server" Text='<%# Bind("Location_ID") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="User_ID" SortExpression="User_ID">
<EditItemTemplate>
<asp:TextBox ID="TextBox12" runat="server" Text='<%# Bind("User_ID") %>'></asp:TextBox>
</EditItemTemplate>
<FooterTemplate>
<asp:DropDownList ID="ddlUserID" runat="server" DataSourceID="UserSQL" DataTextField="Username" DataValueField="User_ID">
</asp:DropDownList>
<asp:SqlDataSource ID="UserSQL" runat="server" ConnectionString="<%$ ConnectionStrings:itassetmgmtConnectionString1 %>" SelectCommand="SELECT [User_ID], [Firstname], [Lastname], [Username] FROM [Users]"></asp:SqlDataSource>
</FooterTemplate>
<ItemTemplate>
<asp:Label ID="Label12" runat="server" Text='<%# Bind("User_ID") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Dept_ID" SortExpression="Dept_ID">
<EditItemTemplate>
<asp:TextBox ID="TextBox13" runat="server" Text='<%# Bind("Dept_ID") %>'></asp:TextBox>
</EditItemTemplate>
<FooterTemplate>
<asp:DropDownList ID="DropDownList2" runat="server" DataSourceID="DeptSQL" DataTextField="Department" DataValueField="Dept_ID">
</asp:DropDownList>
<asp:SqlDataSource ID="DeptSQL" runat="server" ConnectionString="<%$ ConnectionStrings:itassetmgmtConnectionString1 %>" SelectCommand="SELECT * FROM [Departments]"></asp:SqlDataSource>
</FooterTemplate>
<ItemTemplate>
<asp:Label ID="Label13" runat="server" Text='<%# Bind("Dept_ID") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Maintenance_ID" SortExpression="Maintenance_ID">
<EditItemTemplate>
<asp:TextBox ID="TextBox14" runat="server" Text='<%# Bind("Maintenance_ID") %>'></asp:TextBox>
</EditItemTemplate>
<FooterTemplate>
<asp:DropDownList ID="ddlMaintenance" runat="server" DataSourceID="MaintenanceSQL" DataTextField="Maintenance_ID" DataValueField="Maintenance_ID">
</asp:DropDownList>
<asp:SqlDataSource ID="MaintenanceSQL" runat="server" ConnectionString="<%$ ConnectionStrings:itassetmgmtConnectionString1 %>" SelectCommand="SELECT * FROM [Maintenance]"></asp:SqlDataSource>
</FooterTemplate>
<ItemTemplate>
<asp:Label ID="Label14" runat="server" Text='<%# Bind("Maintenance_ID") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Workstation_Name" SortExpression="Workstation_Name">
<EditItemTemplate>
<asp:TextBox ID="TextBox15" runat="server" Text='<%# Bind("Workstation_Name") %>'></asp:TextBox>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="insertWstationName" runat="server"></asp:TextBox>
</FooterTemplate>
<ItemTemplate>
<asp:Label ID="Label15" runat="server" Text='<%# Bind("Workstation_Name") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<FooterStyle BackColor="#CCCCCC" ForeColor="Black" Wrap="False" />
<HeaderStyle BackColor="#34397D" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#999999" ForeColor="Black" HorizontalAlign="Center" />
<RowStyle BackColor="#EEEEEE" ForeColor="Black" />
<SelectedRowStyle BackColor="#008A8C" Font-Bold="True" ForeColor="White" />
<SortedAscendingCellStyle BackColor="#F1F1F1" />
<SortedAscendingHeaderStyle BackColor="#0000A9" />
<SortedDescendingCellStyle BackColor="#CAC9C9" />
<SortedDescendingHeaderStyle BackColor="#000065" />
隐藏代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace WebApplication3
{
public partial class Workstation : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
string ddl = DropDownList1.SelectedValue;
if (ddl=="Location_ID")
{
RegularExpressionValidator1.Enabled = true;
RegularExpressionValidator1.ValidationExpression = "^[0-9]*$";
string FilterExpression = "Convert(Location_ID , 'System.String') LIKE '%{0}%'";
SqlDataSource1.FilterParameters.Clear();
SqlDataSource1.FilterParameters.Add(new ControlParameter(DropDownList1.SelectedValue, "TextBox1", "Text"));
SqlDataSource1.FilterExpression = FilterExpression;
} else if (ddl == "User_ID")
{
RegularExpressionValidator1.Enabled = true;
RegularExpressionValidator1.ValidationExpression = "^[0-9]*$";
string FilterExpression = "Convert(User_ID , 'System.String') LIKE '%{0}%'";
SqlDataSource1.FilterParameters.Clear();
SqlDataSource1.FilterParameters.Add(new ControlParameter(DropDownList1.SelectedValue, "TextBox1", "Text"));
SqlDataSource1.FilterExpression = FilterExpression;
}
else if (ddl == "Dept_ID")
{
RegularExpressionValidator1.Enabled = true;
RegularExpressionValidator1.ValidationExpression = "^[0-9]*$";
string FilterExpression = "Convert(Dept_ID , 'System.String') LIKE '%{0}%'";
SqlDataSource1.FilterParameters.Clear();
SqlDataSource1.FilterParameters.Add(new ControlParameter(DropDownList1.SelectedValue, "TextBox1", "Text"));
SqlDataSource1.FilterExpression = FilterExpression;
}
else if (ddl == "Maintenance_ID")
{
RegularExpressionValidator1.Enabled = true;
RegularExpressionValidator1.ValidationExpression = "^[0-9]*$";
string FilterExpression = "Convert(Maintenance_ID , 'System.String') LIKE '%{0}%'";
SqlDataSource1.FilterParameters.Clear();
SqlDataSource1.FilterParameters.Add(new ControlParameter(DropDownList1.SelectedValue, "TextBox1", "Text"));
SqlDataSource1.FilterExpression = FilterExpression;
}
else
{
string FilterExpression = string.Concat(DropDownList1.SelectedValue, " LIKE '%{0}%'");
SqlDataSource1.FilterParameters.Clear();
SqlDataSource1.FilterParameters.Add(new ControlParameter(DropDownList1.SelectedValue, "TextBox1", "Text"));
SqlDataSource1.FilterExpression = FilterExpression;
}
GridView1.DataBind();
if (GridView1.Rows.Count == 0)
{
Add_Button.Visible = false;
}
else
{
Add_Button.Visible = true;
}
}
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
// Insert data if the CommandName == "Insert"
// and the validation controls indicate valid data...
if (e.CommandName == "Insert" && Page.IsValid)
{
// Insert new record...
SqlDataSource1.Insert();
}
}
protected void InsertButton_Click(object sender, EventArgs e)
{
// Programmatically reference Web controls in the inserting interface...
TextBox insertModelName = (TextBox)GridView1.FooterRow.FindControl("insertModelName");
TextBox insertOS = (TextBox)GridView1.FooterRow.FindControl("insertOS");
TextBox insertRAM = (TextBox)GridView1.FooterRow.FindControl("insertRAM");
TextBox insertHDD = (TextBox)GridView1.FooterRow.FindControl("insertHDD");
TextBox insertUnusedHDD = (TextBox)GridView1.FooterRow.FindControl("insertUnusedHDD");
TextBox insertServiceTag = (TextBox)GridView1.FooterRow.FindControl("insertServiceTag");
TextBox insertAdminUname = (TextBox)GridView1.FooterRow.FindControl("insertAdminUname");
TextBox insertAdminPword = (TextBox)GridView1.FooterRow.FindControl("insertAdminPword");
TextBox insertGateway = (TextBox)GridView1.FooterRow.FindControl("insertGateway");
TextBox insertDate = (TextBox)GridView1.FooterRow.FindControl("insertDate");
DropDownList LocationDDL = (DropDownList)GridView1.FooterRow.FindControl("LocationDDL");
DropDownList ddlUserID = (DropDownList)GridView1.FooterRow.FindControl("ddlUserID");
DropDownList DropDownList2 = (DropDownList)GridView1.FooterRow.FindControl("DropDownList2");
DropDownList ddlMaintenance = (DropDownList)GridView1.FooterRow.FindControl("ddlMaintenance");
TextBox insertWstationName = (TextBox)GridView1.FooterRow.FindControl("insertWstationName");
// Set the SQLDataSource's InsertParameters values...
SqlDataSource1.InsertParameters["Model_Name"].DefaultValue = insertModelName.Text;
SqlDataSource1.InsertParameters["Operating_System"].DefaultValue = insertOS.Text;
SqlDataSource1.InsertParameters["RAM"].DefaultValue = insertRAM.Text;
SqlDataSource1.InsertParameters["HDD_Size"].DefaultValue = insertHDD.Text;
SqlDataSource1.InsertParameters["Unused_HDDspace"].DefaultValue = insertUnusedHDD.Text;
SqlDataSource1.InsertParameters["Service_Tag"].DefaultValue = insertServiceTag.Text;
SqlDataSource1.InsertParameters["Admin_Username"].DefaultValue = insertAdminUname.Text;
SqlDataSource1.InsertParameters["Admin_Password"].DefaultValue = insertAdminPword.Text;
SqlDataSource1.InsertParameters["Gateway"].DefaultValue = insertGateway.Text;
SqlDataSource1.InsertParameters["Date_Last_verified"].DefaultValue = insertDate.Text;
SqlDataSource1.InsertParameters["Location_ID"].DefaultValue = LocationDDL.SelectedValue;
SqlDataSource1.InsertParameters["User_ID"].DefaultValue = ddlUserID.SelectedValue;
SqlDataSource1.InsertParameters["Dept_ID"].DefaultValue = DropDownList2.SelectedValue;
SqlDataSource1.InsertParameters["Maintenance_ID"].DefaultValue = ddlMaintenance.SelectedValue;
SqlDataSource1.InsertParameters["Workstation_Name"].DefaultValue = insertWstationName.Text;
}
protected void Add_Button_Click(object sender, EventArgs e)
{
if (GridView1.FooterRow.Visible == false)
{
GridView1.FooterRow.Visible = true;
Add_Button.Text = "Cancel";
}
else
{
GridView1.FooterRow.Visible = false;
Add_Button.Text = "Add New Record";
}
}
protected void MaintainedChkBx_CheckedChanged(object sender, EventArgs e)
{
GridViewRow r = GridView1.Rows[GridView1.SelectedIndex];
string mid = ((Label)r.FindControl("Label14")).Text;
if (MaintainedChkBx.Checked == true)
{
insrtMaintInfolbl.Visible = true;
dateLbl.Visible = true;
notesLbl.Visible = true;
maintDate.Visible = true;
notesTxtArea.Visible = true;
statusChkBx.Visible = true;
InsrtBtn.Visible = true;
MaintenanceTable.Visible = true;
if (mid == "")
{
MaintDataSource.SelectCommand = "Select * From Maintenance";
MaintDataSource.DataBind();
}
else
{
Convert.ToInt32(mid);
MaintDataSource.SelectCommand = "Select * From Maintenance Where Maintenance_ID=" + mid;
MaintDataSource.DataBind();
}
}
else
{
insrtMaintInfolbl.Visible = false;
dateLbl.Visible = false;
notesLbl.Visible = false;
maintDate.Visible = false;
notesTxtArea.Visible = false;
statusChkBx.Visible = false;
InsrtBtn.Visible = false;
MaintenanceTable.Visible = false;
}
}
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
MaintainedChkBx.Visible = true;
MaintainedChkBx.Checked = false;
GridView1.SelectedIndex = -1;
insrtMaintInfolbl.Visible = false;
dateLbl.Visible = false;
notesLbl.Visible = false;
maintDate.Visible = false;
notesTxtArea.Visible = false;
statusChkBx.Visible = false;
InsrtBtn.Visible = false;
MaintenanceTable.Visible = false;
}
protected void InsrtBtn_Click(object sender, EventArgs e)
{
string dte = maintDate.SelectedDate.ToString("d");
string notes = Request.Form["notesTxtArea"];
int chk;
if (statusChkBx.Checked == true)
{
chk = 1;
}
else
{
chk = 0;
}
string query = "INSERT INTO Maintenance (Status, Date, Notes) " +
"VALUES (" + chk + ", '" + dte + "', '" + notes + "')";
MaintDataSource.InsertCommand = query;
MaintDataSource.Insert();
}
protected void DeslctBtn_Click(object sender, EventArgs e)
{
MaintainedChkBx.Visible = false;
MaintainedChkBx.Checked = false;
GridView1.SelectedIndex = -1;
insrtMaintInfolbl.Visible = false;
dateLbl.Visible = false;
notesLbl.Visible = false;
maintDate.Visible = false;
notesTxtArea.Visible = false;
statusChkBx.Visible = false;
InsrtBtn.Visible = false;
MaintenanceTable.Visible = false;
}
}
}
GridView1.SelectedIndex = -1;
这一直在我的 SelectedIndexChanged
活动中。这导致了问题并且不允许我 select GridView 中的行。