|
|
|
มีปัญหากับ controls.add และ combobox ครับ ......!? |
|
|
|
|
|
|
|
ช่วยหน่อยครับแก้ไขข้อความแล้วน่าจะเข้าใจขึ้นหน่อย
|
|
|
|
|
Date :
2011-03-17 00:09:52 |
By :
hamzter |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ปัญหาตรงสร้าง combobox หลายๆอันครับแล้วอันต่อไปมันไม่เป็น combobox
|
|
|
|
|
Date :
2011-03-18 16:40:50 |
By :
hamzter |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ทายว่าที่เห็นทั้งหมดนั่นเป็นการตีตารางด้วย tag html แล้ว add control เข้าไป
ถ้าใช่ แนะนำให้คุณกลับไปใช้ gridview เพื่อจะทำงานที่คุณต้องการทั้งหมดให้มันง่ายขึ้น
ลืมไปหรือเปล่าคะว่า asp.net เป็น server-side programming ถ้าใช้ concept แบบ winform
หรือ php มันเหมือนจะเริ่มต้นได้ง่ายแต่เวลา bend code (ปรับให้เป็นอย่างที่ต้องการ) แบบนี้กับ ASP.NET
มันจะยาก และการที่ใช้ combobox กับทุก row ลองคูณจำนวน item ของรายการกับ row
จะเห็นว่าคุณใช้ทรัพยากรเยอะมาก ซึ่งถ้าเป็น web app เป็นการสิ้นเปลืองแบบร้ายแรง
นอกจากจะทำให้ load ช้า postback ช้า และถ้านำไปใช้งานจริงคงใช้ไม่ได้ web อาจจะล่ม
ทั้งๆที่เขียน code ถูกหมด
แนะนำว่าให้ใช้ template ของ gridview ใน mode edit ก้อให้ใช้ combobox แต่เวลา display
ก้อใช้ label ไปแทน เสร็จจากนี้แล้วก้อทายอีกว่าคุณจะถามว่าผมจะคำนวนราคารวม / ส่วนลด
ของแต่ละรายการและรวมทั้งหมดยังไง อันนั้นใช้ javascript มาช่วยค่ะ
ที่ทายๆมาถูกมั่งปะคะ
|
|
|
|
|
Date :
2011-03-18 17:23:58 |
By :
blurEyes |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
กราบกระต่ายตาขวาง 3 ที แล้วเดินจากไปแบบเงียบๆ
|
|
|
|
|
Date :
2011-03-18 19:04:04 |
By :
พี่หมี |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ส่วนของการโหลดช้าผมว่าไม่น่าจะเป็นปัญหาเท่าไหร่ครับ เพราะคิดว่าใช้ไม่กี่เครื่องแล้วก็เป็นเครือข่ายแบบภายใน
หน้านี้เป็นส่วนaddข้อมูลครับรูปที่เห็นเป็นตารางส่วนล่างครับ ถ้าจะกรอกข้อมูลส่วนล่างได้ต้องมีข้อมูลส่วนบนก่อน
อีกส่วนผมต้องการแยกคอลัมน์ ผมไม่รู้ว่าgridview จะแยกคอลัมได้ไหมหรือขยายตารางได้หรือเปล่า
อีกส่วนคือเลือก"รายการ"จะแสดง"หน่วย"ใส่"จำนวน"ใส่"ราคา"จะแสดง"จำนวนเงิน"
ผมเลยคิดว่าถ้าgridviewน่าจะยุ่งยากกว่า ถ้าผมแยกส่วนเองจะง่ายกว่าและน่าจะสะดวกตอนคำนวณ"จำนวนเงิน"ครับ
ผมเลยแยกส่วนทำเองแล้วมันติดตรงที่ combobox มันสร้างมาใช้ได้แค่อันเดียวหรือผมใช้ไม่ถูกวิธีก็ไม่รู้
|
|
|
|
|
Date :
2011-03-18 19:57:55 |
By :
hamzter |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
จะลองดูตามที่คุณคิดเอาไว้ก็ได้นี่คะ แต่เท่าที่เคยทดลองมาด้วยวิธีที่คล้ายๆกับคุณมาก่อน
มันไม่ค่อยจะเวิร์ก ถ้าคุณจะมาทำคำนวน จำนวนเงินด้วย code server-side
มันออกจะทำให้ระบบ postback ยกเว้นว่าคุณจะทำด้วย ajax
เพราะนี่ไม่ใช่ win app ทุกครั้งที่กดปุ่มอะรัยของ server side มันจะ postback ทั้งหมด
และหากคุณใช้ combobox ทุกแถวมันก้อจะโหลดพร้อมกันหมดอีกครั้ง
ลองดูค่ะ มันอาจจะดีกว่าก้อเป็นได้
แต่ทั้งนี้ก้อแนะนำว่าใช้ gridview จะง่ายและเร็วกว่่าค่ะ
|
|
|
|
|
Date :
2011-03-18 23:13:34 |
By :
สาวเอ๋อ เอ๋อเหรอ เอ๋อมากมาย |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
มันติดอยู่ที่ combobox มันสร้างหลายๆอันไม่ได้เนี่ยครับจะลองแบบไหนก็ไม่ได้
|
|
|
|
|
Date :
2011-03-18 23:19:41 |
By :
hamzter |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เห็นด้วยกับคุณ stupidgirl ใช้ gridview เร็วกว่าเห็นๆ แก้ก็ง่าย แต่เดาว่าคุณคงไม่ชอบเขียนแบบ code behide งั้นลองเขียนแบบโค้ดโบราณดูมั๊ยครับ
Code (JavaScript)
<%@ Page Language="C#" %>
<html>
<head >
<title>Hello ThaiCreate</title>
<script language="javascript">
//========[ Java Script Zone ]========//
var _rowId = 0;
function deleteRow(pRow)
{
if ( !pRow ) return;
if ( !confirm("จาลบจิงหรอ ??") ) return alert("มะแน่จัยหย่ากดเล่นจิ !!");
document.getElementById("tblDisplay").deleteRow(pRow.rowIndex);
}
function addRow()
{
var table = document.getElementById("tblDisplay");
var row = table.insertRow(table.rows.length);
var cell = row.insertCell(0);
var sel = document.createElement("select");
sel.name = "cboDisplay" + _rowId++;
var strText = new Array();
strText[0] = sel.name;
strText[1] = "AAAA";
strText[2] = "BBBB";
strText[3] = "CCCC";
strText[4] = "DDDD";
for(i=0;i<strText.length;sel.options.add(new Option(strText[i++])));
cell.appendChild(sel);
var cell2 = row.insertCell(1);
var btnDelete = document.createElement("input");
btnDelete.setAttribute("type","button");
btnDelete.setAttribute("value","ลบ");
btnDelete.onclick = function(){ deleteRow(row);}
cell2.appendChild(btnDelete);
}
</script>
</head>
<body>
<form method="post">
<table id="tblDisplay" border="1" cellpadding="5">
<%
//=========[ C# Zone ]=========//
if( Request.Form.Count > 0 )
{
Response.Write( "<tr><th>ชื่อตัวแปร</th><th>ค่าที่ส่งมา</th></tr>" );
for( int i=0 ; i < Request.Form.Count ; i++ )
{
Response.Write( "<tr><td>" );
Response.Write( Request.Form.GetKey( i ) );
Response.Write( "</td><td>" );
Response.Write( Request.Form[ i ] );
Response.Write( "</td></tr>" );
}
}
%>
<tr>
<td><input type="button" value="เพิ่มแถว" onclick="addRow()" /></td>
<td><input type="submit" value="ส่งข้อมูล" /></td>
</tr>
</table>
</form>
</body>
</html>
ลองเอาไปประยุกต์เล่นดูนะครับ
|
ประวัติการแก้ไข 2011-03-21 18:40:25
|
|
|
|
Date :
2011-03-21 18:33:00 |
By :
Programmer Of Persia |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 03
|