我正在创建工作时间表以了解有关asp和建立数据库连接的更多信息我也正在利用这段时间来准备下周三开始的下一个C#和数据库设计课程。我想知道如何从default.aspx获取数据并将其显示在timesheetdisplay.aspx中,我也想知道如何制作它以便该人不必输入完整的ID“100000111”因为它出现在数据库中的最后3个。
<asp:TextBox id="xBadgeTextBox" runat="server" width="100px"></asp:TextBox>
答案 0 :(得分:1)
就在页面之间传递数据而言,您可以通过QueryString,Session变量或将其持久化到某种数据存储(如数据库)。在上面的情况中,我将看看通过Querystring参数传递。如果您这样做,请确保在新页面上验证数据以确保其安全性和有效性(使用SQL注入攻击)。
How to: Pass Values Between ASP.NET Web Pages
就你的第二个问题而言,如果你确定最后3位数字总是唯一的,我会说这可以在服务器端处理。或者您是否想要提示用户输入类似于Google的数据?如果是这样,请查看AJAX Control Toolkit中的AutoComplete Extender,或者查看在JQuery中执行类似的操作。
答案 1 :(得分:0)
我会生成一个唯一的密钥,存储您在用户会话中传输的值,重定向用户并将密钥包含在查询字符串中,获取密钥,然后获取值。像这样:
//---On Default---
var value = "can be a single string or even a complext object...";
var keyName = Guid.NewGuid().ToString();
HttpContext.Current.Session[keyName] = value;
HttpContext.Current.Response.Redirect("timesheetdisplay.aspx?SID=" + keyName);
//---On TimeSheet---
var getKeyName = HttpContext.Current.Request.QueryString["sid"].ToString();
var myValue = HttpContext.Current.Session[keyName];
要从部分ID中获取ID,我会像Muhammad Akhtar所说的那样:
select * From yourtable where id like '%111'
答案 2 :(得分:0)
如果您要从一个页面重定向到另一个页面,请在导航离开default.aspx页面时考虑使用Server.Transfer("timesheetdisplay.aspx", true)
方法。请注意第二个参数true,它将在页面之间保留所有ViewState和QueryString数据。