我有一个提前输入文本字段,当用户点击"Enter"时,我想进行ajax调用,而不是同时提交表单.我的HTML看起来像这样:
<input id="drug_name" class="drugs_field" type="text" size="30" onkeypress="handleKeyPress(event,this.form); return false;" name="drug[name]" autocomplete="off"/>
<div id="drug_name_auto_complete" class="auto_complete" style="display: none;"/>
<script type="text/javascript">
//<![CDATA[
var drug_name_auto_completer = new Ajax.Autocompleter('drug_name', 'drug_name_auto_complete', '/sfc/pharmacy/auto_complete_for_drug_name', {})
//]]>
</script>
Run Code Online (Sandbox Code Playgroud) 我想知道是否有一种方法可以获得DataGrid的HTML输出.在数据绑定到网格后我想要原始 HTML.我可以用它来实现这个渲染方法的某种重载吗?谢谢.
作为那个网络标准的极客,我不喜欢<form runat="server">围绕我整个网页的默认设置.我见过很多没有这些的基于ASP.NET的网页,所以看起来它可以删除而不带走任何功能.怎么样?
我很抱歉可能误导了这个头衔,但我不知道一个合适的头衔.
随意编辑.
无论如何,我使用的是ASP.NET Web Forms,也许这不是Web表单的使用方式,但我喜欢手动构建和填充HTML元素.它给了我更多的控制权.
我不使用DataBinding和那种东西.我使用SqlConnection,SqlCommand和SqlDataReader,设置SQL字符串等,并从DataReader读取数据.老学校,如果你喜欢.:)
我确实创建WebControls,这样我每次需要一些控件时都不需要复制粘贴,但大多数情况下,我需要WebControls渲染为HTML,这样我就可以将HTML附加到其他函数中,使用控件渲染最终输出内.
我知道我可以用control.RenderControl(writer)渲染一个控件,但这只能在(pre)Render或RenderContents覆盖中完成.
例如.
我有一个dal.cs文件,其中存储了与数据库通信的所有静态函数和空洞.函数主要返回字符串,以便可以将其附加到其他函数中以呈现最终结果.
我这样做的原因是我想尽可能多地将编码与HTML分开,这样我就不会在HTML中执行<%while(dataReader.Read())%>并显示数据.我把它移到了CodeBehind.我还使用此函数在HttpHandler中呈现AJAX响应.
这很好用,但是当我想添加一个控件(ASP.NET服务器控件(.cs扩展名,而不是.ascx))时,我不知道该怎么做,所以我看到自己编写了与函数相同的控件返回该控件中的字符串或其他函数,它返回字符串并替换RenderContents所做的作业,这样当我需要将控件附加到另一个字符串时,我可以调用该函数.我知道这可能不是一个很好的做法.
当我看到关于ASP.NET MVC的所有教程/视频时,我认为它满足了我的需求,就像MVC一样,你必须自己构建一切(或大部分),我现在已经在使用Web表单.
在这个长篇介绍之后,我想问一下如何构建我的控件以便我可以像我提到的那样使用它们(返回字符串)或者我必须忘记服务器控件并将控件构建为函数并以这种方式使用它们?甚至可以使用ASP.NET服务器控件(.cs扩展名),或者当我说我没有正确使用它时我是对的.
为了清楚起见,我正在讨论如何正确使用Web表单,但是为了避免使用数据绑定器,因为我想通过自己构建所有内容(在Code Behind中呈现HTML).
有人可能会认为我附加的字符串如"some"+"string",我不是.我正在使用StringBuilder,因此没有缓慢.
欢迎提出任何意见.
那究竟是什么意思呢?
有些人建议绕过这个错误,只有当数据表的行数大于零时才将gridview绑定到数据集.
但是,例如,如果您的搜索没有返回任何记录,那么您的数据表将没有行,但仍然可以绑定到数据集?
除了检查行是否在数据集(或数据表)中之外,我如何确保ilist包含有效的数据源?
什么是最好的方法?
我可以使用mshtml完成我需要做的大部分工作,但是我对如何将复选框输入元素设置为"已检查"感到困惑.这是情况......
IHTMLElementCollection inputElements = (IHTMLElementCollection)doc.all.tags("input");
foreach (IHTMLElement el in inputElements)
{
string elementHtml = el.outerHTML;
string termsOfServiceIdentifier = "id=chkUTOS_ver2";
// select the Terms of Service checkbox
if (elementHtml.Contains(termsOfServiceIdentifier))
{
HTMLInputElement chkTOS = (HTMLInputElement)el;
chkTOS.@checked = true; // that's the solution. Thanks Wayne.
}
else
{
// do nothing - we're not interested in this element
}
}
Run Code Online (Sandbox Code Playgroud)
在此先感谢您的帮助!
格雷格
我只是转向一个新的ASP.NET主机,它似乎表现不同.在主页面的代码中,它正在尝试为经过身份验证的用户执行一些不同的逻辑.
if (Context.User.IsAuthenticated) {
}
Run Code Online (Sandbox Code Playgroud)
但Context.User对象为null.但它在母版页上只是null.如果我在常规页面上使用它就可以了.
if (User.IsAuthenticated) {
}
Run Code Online (Sandbox Code Playgroud)
有谁知道问题可能是什么?我可能无法控制托管环境,但是我可以通过不同的方式在母版页中获取此信息吗?
其他信息:
似乎Context.User或Page.User对象在两者中都是null
但它不是空的
我目前正在ASP.NET Webforms中开发一个站点.
我正在缓存它所做的事情...使用高/正常/低优先级添加东西..告诉他们留在缓存中2周,1周,4小时可敬
我在每个页面上显示当前缓存项目的数量(出于调试原因).
有时,如果我快速浏览网站,缓存中的项目数量可以达到2000项...但如果我等待5分钟并刷新页面,缓存将减少到20项..(正好在该页面上缓存的内容) )
有什么方法可以找到我们正在发生的事情吗?这是否有原因让我失踪?
我正在运行Win7,4Gb ram,64位,VS10,.net4,
我有4个ram的演出,为什么我的缓存完全空了?
我会说10%的缓存项目大约是4k,其余的将是大约100个字符长的字符串.
编辑:我正在使用Sliding Expiration
编辑:我把它整理出来,有一两件物品非常大而且它们被设置为高优先级..而且其他一些较小的变化解决了我的问题.
我在ASP.Net中有一个usercontrol,其中包含一个用于回发的按钮.此按钮还具有一些在处理事件之前完成的Javascript验证.
今天我尝试通过设置按钮的PostBackURL属性回发到另一个URL.但它不起作用,页面不断回复自己.所以我做了一些调查,发现了.
如果我保持对我的验证功能的调用
OnClientClick ="return validate()"然后回发不会发生.
这是按钮标记在验证时的外观.
<input type="submit" name="ctl00$cphMain$pra1$btnSubmit" value="Submit" onclick="return validate();WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("ctl00$cphMain$pra1$btnSubmit", "", false, "", "Result.aspx", false, false))" id="ctl00_cphMain_pra1_btnSubmit" style="width:80px;" />
Run Code Online (Sandbox Code Playgroud)
没有验证
<input type="submit" name="ctl00$cphMain$pra1$btnSubmit" value="Submit" onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("ctl00$cphMain$pra1$btnSubmit", "", false, "", "Result.aspx", false, false))" id="ctl00_cphMain_pra1_btnSubmit" style="width:80px;" />
Run Code Online (Sandbox Code Playgroud)
您会注意到缺少对"return validate()"的调用,这就完全不同了.
我怎样才能让它发挥作用?
我以前从未见过这个,我一直都知道有GET或POST.我找不到任何好的文件.
GET通过URL发送变量.POST通过文件正文发送?
HEAD做什么?
它不经常使用,我是否正确?
W3schools.com甚至没有提到它.
webforms ×10
asp.net ×5
html ×4
.net ×3
c# ×2
javascript ×2
asp.net-mvc ×1
caching ×1
datagrid ×1
datatable ×1
gridview ×1
master-pages ×1
mshtml ×1
postback ×1
render ×1
validation ×1