gpt4 book ai didi

c# - 在 ASP.NET C# SQL 中导致问题的文本框

转载 作者:太空狗 更新时间:2023-10-29 22:12:01 25 4
gpt4 key购买 nike

我正在使用嵌套的 Gridview(我有 5 个嵌套的 Gridview)。我已经为这些 GridView 应用了常规字段验证器。

但是一旦我点击按钮,逗号就会在文本框中生成。因此,每当我单击该按钮时,所有验证都会被触发。

我研究了很多文章,但没有找到与此相关的文章。

这是带有在文本框中生成的逗号的 Gridview 的图像:

Image Of Error Page

HTML 代码部分

<%-- First Gridview--%>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false"
CssClass="gvstyling gridview_width_60" ShowHeaderWhenEmpty="true" EmptyDataText="Record(s) Not Found!"
DataKeyNames="locality" ShowHeader="false" OnRowDataBound="gvLocality_RowDataBound">
<Columns>

<asp:TemplateField ItemStyle-Width="15px">
<ItemTemplate>
<img alt="" style="cursor: pointer" src="../images/plus.png" />

<asp:Panel ID="pnlCompanyName" runat="server" Style="display: none">

<%-- Second Gridview --%>
<asp:GridView ID="gvCompanyName" ShowHeader="false" ShowHeaderWhenEmpty="false" CssClass="gvstyling gridview_width_100"
OnRowDataBound="gvCompanyName_RowDataBound" runat="server"
AutoGenerateColumns="false" EmptyDataText="No Record(s) Found!">

<Columns>

<asp:TemplateField ItemStyle-Width="15px">
<ItemTemplate>
<asp:HiddenField ID="hfRetailer_Id" Value='<%# Eval("retailer_id") %>' runat="server"></asp:HiddenField>
<asp:HiddenField ID="hfLocality" Value='<%# Eval("locality") %>' runat="server"></asp:HiddenField>
<asp:Label ID="lbl" Visible="false" Text='<%# Eval("retailer_id") %>' runat="server"></asp:Label>
<img alt="" style="cursor: pointer" src="../images/plus.png" />

<asp:Panel ID="pnlSellOrderNo" runat="server" Style="display: none">

<%-- Third Gridview --%>
<asp:GridView ID="gvSellOrderNo" ShowHeader="false" ShowHeaderWhenEmpty="false"
CssClass="gvstyling gridview_width_100" runat="server" OnRowDataBound="gvSellOrderNo_RowDataBound"
AutoGenerateColumns="false" EmptyDataText="No Record(s) Found!">
<Columns>
<asp:TemplateField ItemStyle-Width="15px">
<ItemTemplate>
<asp:HiddenField ID="hf_SellOrderNo" Value='<%# Eval("sell_order_no") %>' runat="server"></asp:HiddenField>
<asp:Label ID="lblSellOrderNo" Visible="false" Text='<%# Eval("sell_order_no") %>' runat="server"></asp:Label>
<img alt="" style="cursor: pointer" src="../images/plus.png" />
<asp:Panel ID="pnlProductDetails" runat="server" Style="display: none">

<%-- fourth Gridview --%>
<asp:GridView ID="gvProductDetails" ShowHeader="false" ShowHeaderWhenEmpty="false"
CssClass="gvstyling gridview_width_100" runat="server" OnRowDataBound="gvProductDetails_RowDataBound"
AutoGenerateColumns="false" EmptyDataText="No Record(s) Found!">
<Columns>

<asp:TemplateField ItemStyle-Width="15px">
<ItemTemplate>
<asp:HiddenField ID="HiddenField1" Value='<%# Eval("sell_order_no") %>' runat="server"></asp:HiddenField>
<asp:HiddenField ID="hfProductId" Value='<%# Eval("product_id") %>' runat="server"></asp:HiddenField>
<asp:Label ID="lblProductId" Visible="false" Text='<%# Eval("product_id") %>' runat="server"></asp:Label>

<img alt="" style="cursor: pointer" src="../images/plus.png" />
<asp:Panel ID="pnlWarehouseDetails" runat="server" Style="display: none">

<%-- fifth Gridview--%>
<asp:GridView ID="gvWarehouseDetails" ShowHeader="false" ShowHeaderWhenEmpty="false"
CssClass="gvstyling gridview_width_100" runat="server"
AutoGenerateColumns="false">

<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:Label ID="lblWarehouseId" Text='<%# Eval("c_warehouse_id") %>' Visible="false" runat="server"></asp:Label>
<%# Eval("warehouse_name") %> (<%# Eval("qty") %>)
</ItemTemplate>
</asp:TemplateField>

<asp:TemplateField>
<ItemTemplate>
<asp:TextBox ID="txtQty" runat="server"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
</Columns>

</asp:GridView>

<%-- fifth Gridview --%>
</asp:Panel>
</ItemTemplate>
</asp:TemplateField>



<asp:TemplateField>
<ItemTemplate>
<%# Eval("product_name") %> (<%# Eval("qty") %>)
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<%-- fourth Gridview --%>
</asp:Panel>
</ItemTemplate>
</asp:TemplateField>

<asp:TemplateField>
<ItemTemplate>
<%# Eval("sell_order_no") %>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<%-- Third Gridview --%>
</asp:Panel>
</ItemTemplate>
</asp:TemplateField>

<asp:TemplateField HeaderText="Business Name">
<ItemTemplate>
<%# Eval("business_name") %>
</ItemTemplate>
</asp:TemplateField>

</Columns>

</asp:GridView>
<%-- Second Gridview--%>
</asp:Panel>
</ItemTemplate>
</asp:TemplateField>

<asp:TemplateField ItemStyle-CssClass="gv_item_bg">
<ItemTemplate>
<asp:Label ID="lblLocality" runat="server" Text=' <%# Eval("locality") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>

</Columns>
</asp:GridView>
<%-- First Gridview --%>

代码隐藏文件

//Filling Shipping Company Name
private void FillShippingCompanyName()
{
try
{
ArrayList arr = new ArrayList();
cm.ds.Clear();
cm.sp_dataset_execute("spdisplay_Shipping_Comany_Name", arr);

ddlCompanyName.DataSource = cm.ds;
ddlCompanyName.DataValueField = "shipping_code";
ddlCompanyName.DataTextField = "shipping_name";
ddlCompanyName.DataBind();
ddlCompanyName.Items.Insert(0, new ListItem("---- Select Shipping Company ----", "0"));
}
catch (Exception ex)
{
ErrHandler.WriteError(ex.Message.ToString(), "Shipping-Order-FillShippingCompanyName()");
}
finally
{
cm.con.Close();
}

}

private void FillLocality()
{
try
{
cm.ds.Clear();
ArrayList arr = new ArrayList();
cm.sp_dataset_execute("spDisplay_Locality", arr);

gvLocality.DataSource = cm.ds;
gvLocality.DataBind();
}
catch (Exception ex)
{
ErrHandler.WriteError(ex.Message.ToString(), "Shipping-Order-FillLocality()");
cm.con.Close();
}
finally
{
cm.con.Close();
}
}

//Locality Gridview Row Databound (Level 1 Grdview)
common cm1 = new common();
protected void gvLocality_RowDataBound(object sender, GridViewRowEventArgs e)
{
try
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
string Locality = gvLocality.DataKeys[e.Row.RowIndex].Value.ToString();
GridView gvCompanyName = e.Row.FindControl("gvCompanyName") as GridView;

cm1.ds.Clear();
//Binding Company Gridview
ArrayList arr1 = new ArrayList();
arr1.Add("@locality|" + Locality + "");
cm1.sp_dataset_execute("spDisplayCompanyName", arr1);

gvCompanyName.DataSource = cm1.ds;
gvCompanyName.DataBind();
}
}
catch (Exception ex)
{
ErrHandler.WriteError(ex.Message.ToString(), "Recent_activity-gvRecentActivityOuter_RowDataBound()");
cm1.con.Close();
}
finally
{
cm1.con.Close();
}
}

//Comapny Name Gridview Row Databound (Level 2 Grdview)
common cm2 = new common();
protected void gvCompanyName_RowDataBound(object sender, GridViewRowEventArgs e)
{
try
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
string RetailerId = ((HiddenField)e.Row.FindControl("hfRetailer_Id")).Value;
GridView gvSellOrderNo = e.Row.FindControl("gvSellOrderNo") as GridView;
string Locality = ((HiddenField)e.Row.FindControl("hfLocality")).Value;



cm2.ds.Clear();
//Binding Company Gridview
ArrayList arr = new ArrayList();
arr.Add("@retailer_id|" + RetailerId + "");
arr.Add("@locality|" + Locality + "");
cm2.sp_dataset_execute("spDisplay_SellOrderNo", arr);

gvSellOrderNo.DataSource = cm2.ds;
gvSellOrderNo.DataBind();
}
}
catch (Exception ex)
{
ErrHandler.WriteError(ex.Message.ToString(), "Shipping-Order-Page_Load()");
cm2.con.Close();
}
finally
{
cm2.con.Close();
}
}

//Sell Order Gridview Row Databound (Level 3 Grdview)
common cm3 = new common();
protected void gvSellOrderNo_RowDataBound(object sender, GridViewRowEventArgs e)
{
try
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
string SellOrderNo = ((HiddenField)e.Row.FindControl("hf_SellOrderNo")).Value;
GridView gvProductDetails = e.Row.FindControl("gvProductDetails") as GridView;

FillProductDetails(gvProductDetails, SellOrderNo);
}
}
catch (Exception ex)
{
ErrHandler.WriteError(ex.Message.ToString(), "Shipping-Order-gvSellOrderNo_RowDataBound()");
cm3.con.Close();
}
finally
{
cm3.con.Close();
}
}

private void FillProductDetails(GridView gvProductDetails, string SellOrderNo)
{

cm3.ds.Clear();
//Product Details Gridview
ArrayList arr = new ArrayList();
arr.Add("@sell_order_no|" + SellOrderNo + "");

cm3.sp_dataset_execute("spDisplay_ProductDetails", arr);

gvProductDetails.DataSource = cm3.ds;
gvProductDetails.DataBind();
}

//Product Details Gridview Row Databound (Level 4 Grdview)
common cm4 = new common();
protected void gvProductDetails_RowDataBound(object sender, GridViewRowEventArgs e)
{
try
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
string ProductID = ((HiddenField)e.Row.FindControl("hfProductId")).Value;

string SellOrderNo = ((HiddenField)e.Row.FindControl("HiddenField1")).Value;

GridView gvWarehouseDetails = e.Row.FindControl("gvWarehouseDetails") as GridView;

cm4.ds.Clear();
//Product Details Gridview
ArrayList arr = new ArrayList();
arr.Add("@product_id|" + ProductID + "");
arr.Add("@sell_order_no|" + SellOrderNo + "");

cm4.sp_dataset_execute("spDisplay_WarehouseDetails", arr);

gvWarehouseDetails.DataSource = cm4.ds;
gvWarehouseDetails.DataBind();
}
}
catch (Exception ex)
{
ErrHandler.WriteError(ex.Message.ToString(), "Shipping-Order-gvProductDetails_RowDataBound()");
cm4.con.Close();
}
finally
{
cm4.con.Close();
}
}

//Submit Button
protected void btnSubmit_Click1(object sender, EventArgs e)
{
try
{
cm.ds.Clear();
//--Insert Query for Rs_Shipping_Order_Details
string ShippingCode = "SHO" + DateTime.Now.ToString("yyyyMMddHHmmss");

string ShippingGroup = "SG" + DateTime.Now.ToString("yyyyMMddHHmmss");

ArrayList arr = new ArrayList();
arr.Add("@shipping_code|" + ShippingCode + "");
arr.Add("@shipping_Company_code|" + ddlCompanyName.SelectedValue + "");
arr.Add("@is_shipping_delivered|0");
cm.sp_execute("spInsert_Shipping_Order_Detail", arr);

//Locality for loop
for (int i = 0; i < gvLocality.Rows.Count; i++)
{
GridView gvCompanyName = gvLocality.Rows[i].FindControl("gvCompanyName") as GridView;

//Company for loop
for (int j = 0; j < gvCompanyName.Rows.Count; j++)
{
GridView gvSellOrderNo = gvCompanyName.Rows[j].FindControl("gvSellOrderNo") as GridView;

string RetailerId = ((Label)gvCompanyName.Rows[j].FindControl("lbl")).Text;


//Sell Order for loop
for (int k = 0; k < gvSellOrderNo.Rows.Count; k++)
{
//Product Details Gridview
GridView gvProductDetails = gvSellOrderNo.Rows[k].FindControl("gvProductDetails") as GridView;
string SO = ((Label)gvSellOrderNo.Rows[k].FindControl("lblSellOrderNo")).Text;
int retailer_Id = Convert.ToInt32(RetailerId);

//Product Details for loop
for (int l = 0; l < gvProductDetails.Rows.Count; l++)
{

//Warehouse Details Gridview
GridView gvWarehouseDetails = gvProductDetails.Rows[l].FindControl("gvWarehouseDetails") as GridView;

string ProductId = ((Label)gvProductDetails.Rows[l].FindControl("lblProductId")).Text;

//Warehouse Details for loop
for (int m = 0; m < gvWarehouseDetails.Rows.Count; m++)
{
TextBox txtQty = gvWarehouseDetails.Rows[m].FindControl("txtQty") as TextBox;
string LastValue = txtQty.Text.Split(',').Last();

if (String.IsNullOrEmpty(LastValue) == false)
{
string Warehouse_Id = ((Label)gvWarehouseDetails.Rows[m].FindControl("lblWarehouseId")).Text;
int warehouse_id = Convert.ToInt32(Warehouse_Id);
string Qty = LastValue;

//Insert Query for Rs_Shipping_Detail_Mapping
ArrayList arr1 = new ArrayList();
arr1.Add("@shipping_order_code|" + ShippingCode + "");
arr1.Add("@retailer_id|" + retailer_Id + "");
arr1.Add("@sell_order_no|" + SO + "");
arr1.Add("@product_id|" + ProductId + "");
arr1.Add("@c_warehouse_id|" + warehouse_id + "");
arr1.Add("@shipping_group|" + ShippingGroup + "");
arr1.Add("@qty|" + Qty + "");

common cm1 = new common();
cm1.sp_execute("spInsert_Shipping_Detail_Mapping", arr1);


////Generating Pdf for Each Sell Order
//if (m == gvWarehouseDetails.Rows.Count - 1)
//{
// Generate_SellOrderWise_PDf(SO, ShippingCode, ShippingGroup);
//}
}
}
}
}
}
}
Response.Redirect("../final-shipping-order/?SG=" + ShippingGroup, false);
}
catch (Exception ex)
{
ErrHandler.WriteError(ex.Message.ToString(), "Shipping-Order-btnSubmit_Click1()");
cm4.con.Close();
}
finally
{
cm4.con.Close();
}
}

问题:

<强>1。如何从文本框中删除逗号?

<强>2。这些逗号的原因? (为什么在单击按钮时会生成逗号?)

<强>3。嵌套 Gridview 的限制?

我们将不胜感激。

最佳答案

当您有重复的表单域时 names , 这些值用逗号连接在一起。

因此,例如,如果您有以下......

<input type="text" name="name" value="">
<input type="text" name="name" value="">

.. Request.Form 回发的结果值如下所示:

name=,,

这就是正在发生的事情。

这里有一些可能的解决方案,但我还没有测试过其中任何一个:)

1) 更新面板

从阅读中可以看出,如果您为有问题的网格控件 (< asp:TextBox ID="txtQty" runat="server"></asp:TextBox>) 创建一个 UpdatePanel,它似乎可以解决这个问题。同样,我还没有测试过这个

2) 在 Page_Load() 期间更改 DataBind() 行为

所以...

page_load()
{
if(!isPostBack())
{
// DataBind normally
myGridview.DataBind();
}
else
{
//Some intelligent way to remove commas before binding
}
}

...但这并没有改变 ,,,values 的事实被张贴在第一位。因此,如果您主要关心的是最终审美而不是行为,您可以只使用 JS 去掉逗号(如前所述暗示的那样。)

3) JS - 去掉逗号:

(按照建议 here )

<script type="text/javascript">
$("[src*=plus]").live("click", function () {
$(this).closest("tr").after("<tr><td></td><td colspan = '999'>" + $(this).next().html() + "</td></tr>")
$(this).attr("src", "images/minus.png");
$("input", $(this).closest("tr").next()).each(function () {
this.value = this.value.substring(',', '');
});
});
$("[src*=minus]").live("click", function () {
$(this).attr("src", "images/plus.png");
$(this).closest("tr").next().remove();
});
</script>

希望这有帮助:)

[编辑] - 验证

我会使用 .keydown() 事件触发验证。在您的情况下,它可能看起来像这样:

// Bind to each input with id='txtQty', in each row, in the "gridview" with id='gvWarehouseDetails'
$("#gvWarehouseDetails tr input[id*='txtQty']").each(function () {
$(this).keydown(function (event) { // <-- specifies the specific input
// Validation logic goes here...
});
});

关于c# - 在 ASP.NET C# SQL 中导致问题的文本框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26230797/

25 4 0
文章推荐: c# - 用集合EntityFramework连接表
文章推荐: python - 如何在 Python 中评估自定义数学表达式
文章推荐: python - ProgrammingError : (1146, "Table ' test_.' doesn' t exist") 为 Django 运行单元测试时