任何人都可以帮忙解决这个问题吗?我试图通过使用数据库的产品ID作为文本框ID,将文本框的值传递给后面的C#代码。
这些代码在cart.aspx
<asp:BoundField ItemStyle-CssClass="layoutBox" HeaderStyle-CssClass="gvHeader" DataField="prodID" HeaderText="PRODUCT" />
<asp:TemplateField HeaderStyle-CssClass="gvHeader" HeaderText="SET QUANTITY">
<ItemTemplate>
<div id="divQty">
<img id='Minus-<%# Eval("prodID") %>' class="qtyIcon" src="image/template/minus.jpg" onclick="minusQty(this.id)" />
<input id='<%# Eval("prodID") %>' name='<%# Eval("prodID") %>' type="text" value='<%# Eval("qtyOrder") %>' oninput="noDecimal(this.id);" />
<img id='Plus-<%# Eval("prodID") %>' class="qtyIcon" src="image/template/plus.jpg" onclick="addQty(this.id)" />
</div>
</ItemTemplate>
</asp:TemplateField>
我执行了一些javascript函数,我必须通过在数据库中使用(prodID)存储来设置id,所以我使用// input type =“text”。
现在我遇到一个问题,即我无法通过其ID访问文本框的值。下面是代码 - cart.aspx.cs:
我正在从[Product]表中检索所有prodID,因为文本框正在将它们用作id。
List<string> getProdID = new List<string>();
string sql1 = "SELECT prodID FROM [Product]";
SqlConnection con = new SqlConnection(cs);
SqlCommand cmd1 = new SqlCommand(sql1, con);
con.Open();
SqlDataReader dr1 = cmd1.ExecuteReader();
while (dr1.Read()){
getProdID.Add(dr1[0].ToString());
}
dr1.Close();
con.Close();
我试图获取每个文本框的值但出现错误: 'string'不包含'Value'的定义,也没有扩展方法'Value'接受'string'类型的第一个参数 (您是否缺少using指令或程序集引用?)
for(int a = 0; a < getProdID.Count ; a++)
{
int value = Request.Form[getProdID[a]].Value;
}
答案 0 :(得分:0)
首先,您需要 runat =&#34;服务器&#34; ,以便所有控件在代码隐藏文件中访问它。请参阅下文
<input id='<%# Eval("prodID") %>' name='<%# Eval("prodID") %>' type="text" value='<%# Eval("qtyOrder") %>' oninput="noDecimal(this.id);" runat="server" />
要在后面的代码中访问文本框,您可以挂钩 OnRowDataBound 事件或只是循环遍历GridView.Rows:
int indexOfYourTemplateColumn = 0;
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if(e.Row.RowType == DataControlRowType.DataRow)
{
HtmlInputText txt = (e.Row.FindControl("id") as HtmlInputText);
string txtValue = txt.Value;
}
}
foreach(GridViewRow row in GridView1.Rows) {
if(row.RowType == DataControlRowType.DataRow) {
HtmlInputText txt = (row.FindControl("id") as HtmlInputText);
string txtValue = txt.Value;
}
}
希望它有所帮助!!