【发布时间】:2016-08-05 20:29:47
【问题描述】:
我正在尝试在 C# 的 asp.net 中为 gridview 定义 try catch,我使用了几种方法,例如在标签上显示或 java 脚本,但它们不起作用, 谢谢帮助我 这是我的代码
protected void AddNewSP(object sender, EventArgs e)
{
try
{
string Id = ((TextBox)GridView1.FooterRow.FindControl("txtId")).Text;
string PartName = ((TextBox)GridView1.FooterRow.FindControl("txtPartName")).Text;
string Coverage = ((TextBox)GridView1.FooterRow.FindControl("txtCoverage")).Text;
string SupplierName = ((TextBox)GridView1.FooterRow.FindControl("txtSupplierName")).Text;
string Status = ((TextBox)GridView1.FooterRow.FindControl("txtStatus")).Text;
SqlConnection con = new SqlConnection(strConnString);
SqlCommand cmd = new SqlCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = "insert into SupplySituation(Id, PartName, Coverage, SupplierName, Status) " +
"values(@Id, @PartName, @Coverage, @SupplierName, @Status);" +
"select Id, PartName, Coverage, SupplierName, Status from SupplySituation ORDER BY Id DESC";
cmd.Parameters.Add("@Id", SqlDbType.VarChar).Value = Id;
cmd.Parameters.Add("@PartName", SqlDbType.VarChar).Value = PartName;
cmd.Parameters.Add("@Coverage", SqlDbType.VarChar).Value = Coverage;
cmd.Parameters.Add("@SupplierName", SqlDbType.VarChar).Value = SupplierName;
cmd.Parameters.Add("@Status", SqlDbType.VarChar).Value = Status;
GridView1.DataSource = GetData(cmd);
GridView1.DataBind();
}
catch (Exception ex)
{
ScriptManager.RegisterClientScriptBlock(Page, Page.GetType(), Guid.NewGuid().ToString(), "alert('" + ex.Message.ToString() + "');", true);
}
}
private DataTable GetData(SqlCommand cmd)
{
DataTable dt = new DataTable();
SqlConnection con = new SqlConnection(strConnString);
SqlDataAdapter sda = new SqlDataAdapter();
cmd.CommandType = CommandType.Text;
cmd.Connection = con;
con.Open();
sda.SelectCommand = cmd;
sda.Fill(dt);
return dt;
}
实际上没有任何错误或任何操作,当我点击带有错误数据的“添加”按钮时没有任何反应,我除了显示错误但没有任何反应
我的前台代码
<asp:GridView ID="GridView1" runat="server" Width="750px"
AutoGenerateColumns="False" Font-Names="Arial"
Font-Size="11pt" AlternatingRowStyle-BackColor="#C2D69B"
HeaderStyle-BackColor="green" AllowPaging="True" ShowFooter="True"
OnPageIndexChanging="OnPagingSP" OnRowEditing="EditSP"
OnRowUpdating="UpdateSP" OnRowCancelingEdit="CancelEditSP">
<Columns>
<asp:TemplateField HeaderText="Id">
<ItemTemplate>
<asp:Label ID="lblId" runat="server"
Text='<%# Eval("Id")%>'></asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txtId" Width="20px"
MaxLength="5" runat="server"></asp:TextBox>
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField ItemStyle-Width="50px" HeaderText="PartName">
<ItemTemplate>
<asp:Label ID="lblPartName" runat="server"
Text='<%# Eval("PartName")%>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtPartName" runat="server"
Text='<%# Eval("PartName")%>'></asp:TextBox>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txtPartName" Width="100px"
MaxLength="20" runat="server"></asp:TextBox>
</FooterTemplate>
<ItemStyle Width="30px" />
</asp:TemplateField>
<asp:TemplateField ItemStyle-Width="100px" HeaderText="Coverage">
<ItemTemplate>
<asp:Label ID="lblCoverage" runat="server"
Text='<%# Eval("Coverage")%>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtCoverage" runat="server"
Text='<%# Eval("Coverage")%>'></asp:TextBox>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txtCoverage" runat="server"></asp:TextBox>
</FooterTemplate>
<ItemStyle Width="100px" />
</asp:TemplateField>
<asp:TemplateField ItemStyle-Width="150px" HeaderText="SupplierName">
<ItemTemplate>
<asp:Label ID="lblSupplierName" runat="server"
Text='<%# Eval("SupplierName")%>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtSupplierName" runat="server"
Text='<%# Eval("SupplierName")%>'></asp:TextBox>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txtSupplierName" runat="server"></asp:TextBox>
</FooterTemplate>
<ItemStyle Width="150px" />
</asp:TemplateField>
<asp:TemplateField ItemStyle-Width="150px" HeaderText="Status">
<ItemTemplate>
<asp:Label ID="lblStatus" runat="server"
Text='<%# Eval("Status")%>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtStatus" runat="server"
Text='<%# Eval("Status")%>'></asp:TextBox>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txtStatus" runat="server"></asp:TextBox>
</FooterTemplate>
<ItemStyle Width="150px" />
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID="lnkRemove" runat="server"
CommandArgument='<%# Eval("Id")%>'
OnClientClick="return confirm('Do you want to delete?')"
Text="Delete" OnClick="DeleteSP"></asp:LinkButton>
</ItemTemplate>
<FooterTemplate>
<asp:Button ID="btnAddNewSP" runat="server" Text="Add"
OnClick="AddNewSP" />
</FooterTemplate>
</asp:TemplateField>
<asp:CommandField ShowEditButton="True" />
</Columns>
<AlternatingRowStyle BackColor="#C2D69B" />
<HeaderStyle BackColor="Green" />
</asp:GridView>
【问题讨论】:
-
您的具体问题是什么?
-
也许没有要捕获的错误?
-
I have used several method such as show on the label or java script代码在哪里?but they didn't work,你得到什么错误? -
你的
GetData()函数在哪里 -
没有看到任何你提到什么不起作用的地方?