我有一个页面,其中包含一个从数据库填充的表。它看起来有点像这样:
System Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
1 x x x x x x x x x x x x
2 x x x x x x x x x x x x
6 x x x x x x x x x x x x
表中的每个单元格(即上图中的每个“x”)都包含一个文本框,用户需要在该文本框中输入值。我使用列标题和系统编号动态地给每个文本框一个ID,例如'feb2',‘mar6','oct1’。
页面底部是一个保存按钮,当按下该按钮时,将更新所有系统和所有月份的数据库中的值。
:我的问题是:在不知道文本框is的情况下,如何获取文本框的值并调用函数来更新值?
下面是我想用jQuery (一种我更熟悉的语言)做的例子:
function saveValues(){
var rows = $("#SystemTargetsTable tr:not(:first-child)"); // skip the header row
var systemID;
var jan, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec;
rows.each(function(index) {
systemID = $(this).attr('id').substring(6);
jan = $('#Jan' + systemID).val();
feb = $('#Feb' + systemID).val();
mar = $('#Mar' + systemID).val();
apr = $('#Apr' + systemID).val();
may = $('#May' + systemID).val();
jun = $('#Jun' + systemID).val();
jul = $('#Jul' + systemID).val();
aug = $('#Aug' + systemID).val();
sep = $('#Sep' + systemID).val();
oct = $('#Oct' + systemID).val();
nov = $('#Nov' + systemID).val();
dec = $('#Dec' + systemID).val();
//ONCE I HAVE THE VALUES FOR EACH MONTH I WOULD LIKE TO CALL AN UPDATE STATEMENT USING THE SYSTEM ID. ONLY OF COURSES I CANNOT DO TIS FROM JAVASCRIPT!
});
}
感谢您的宝贵时间。我希望这一切都有意义!
发布于 2012-10-02 01:47:57
在不知道唯一列的ID的情况下,您不能更新和sql表行,在本例中是系统列。
下面是我要做的:
在用动态文本框为每一行填充表时,您为该行分配了textbox的id = system id值。
<asp:TextBox ID="System.ID_Value(FromDB)" value="Month_Value_(value from DB)" runat="server"></asp:TextBox>
then on the click event of the save button
protected void Button1_Click(object sender, EventArgs e)
{
foreach (var row in Table1.Rows)
{
string[] allkeys = Request.Form.AllKeys;
foreach (string key in allkeys)
{
if (key.ToUpper().StartsWith("System_ID"))
{
var ID = Convert.ToInt32(key.Split('_')[1]);
}
if (key.ToUpper().StartsWith("MOnth_Value"))
{
var Jan = Convert.ToInt32(key.Split('_')[2]);
var feb = Convert.ToInt32(key.Split('_')[3]);
}
// and so on then you call the update method
}
}
}
https://stackoverflow.com/questions/12677250
复制相似问题